Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Data / System / Data / Filter / ExpressionNode.cs / 1305376 / ExpressionNode.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //[....] //[....] //----------------------------------------------------------------------------- namespace System.Data { using System; using System.Collections.Generic; using System.Data.Common; using System.Data.SqlTypes; internal abstract class ExpressionNode { private DataTable _table; protected ExpressionNode(DataTable table) { _table = table; } internal IFormatProvider FormatProvider { get { return ((null != _table) ? _table.FormatProvider : System.Globalization.CultureInfo.CurrentCulture); } } internal virtual bool IsSqlColumn{ get{ return false; } } protected DataTable table { get { return _table; } } protected void BindTable(DataTable table) { // when the expression is created, DataColumn may not be associated with a table yet _table = table; } internal abstract void Bind(DataTable table, Listlist); internal abstract object Eval(); internal abstract object Eval(DataRow row, DataRowVersion version); internal abstract object Eval(int[] recordNos); internal abstract bool IsConstant(); internal abstract bool IsTableConstant(); internal abstract bool HasLocalAggregate(); internal abstract bool HasRemoteAggregate(); internal abstract ExpressionNode Optimize(); internal virtual bool DependsOn(DataColumn column) { return false; } internal static bool IsInteger(StorageType type) { return(type == StorageType.Int16 || type == StorageType.Int32 || type == StorageType.Int64 || type == StorageType.UInt16 || type == StorageType.UInt32 || type == StorageType.UInt64 || type == StorageType.SByte || type == StorageType.Byte); } internal static bool IsIntegerSql(StorageType type) { return(type == StorageType.Int16 || type == StorageType.Int32 || type == StorageType.Int64 || type == StorageType.UInt16 || type == StorageType.UInt32 || type == StorageType.UInt64 || type == StorageType.SByte || type == StorageType.Byte || type == StorageType.SqlInt64 || type == StorageType.SqlInt32 || type == StorageType.SqlInt16 || type == StorageType.SqlByte); } internal static bool IsSigned(StorageType type) { return(type == StorageType.Int16 || type == StorageType.Int32 || type == StorageType.Int64 || type == StorageType.SByte || IsFloat(type)); } internal static bool IsSignedSql(StorageType type) { return(type == StorageType.Int16 || // IsSigned(type) type == StorageType.Int32 || type == StorageType.Int64 || type == StorageType.SByte || type == StorageType.SqlInt64 || type == StorageType.SqlInt32 || type == StorageType.SqlInt16 || IsFloatSql(type)); } internal static bool IsUnsigned(StorageType type) { return(type == StorageType.UInt16 || type == StorageType.UInt32 || type == StorageType.UInt64 || type == StorageType.Byte); } internal static bool IsUnsignedSql(StorageType type) { return(type == StorageType.UInt16 || type == StorageType.UInt32 || type == StorageType.UInt64 || type == StorageType.SqlByte ||// SqlByte represents an 8-bit unsigned integer, in the range of 0 through 255, type == StorageType.Byte); } internal static bool IsNumeric(StorageType type) { return(IsFloat(type) || IsInteger(type)); } internal static bool IsNumericSql(StorageType type) { return(IsFloatSql(type) || IsIntegerSql(type)); } internal static bool IsFloat(StorageType type) { return(type == StorageType.Single || type == StorageType.Double || type == StorageType.Decimal); } internal static bool IsFloatSql(StorageType type) { return(type == StorageType.Single || type == StorageType.Double || type == StorageType.Decimal || type == StorageType.SqlDouble || type == StorageType.SqlDecimal || // I expect decimal to be Integer! type == StorageType.SqlMoney || // if decimal is here, this should be definitely here! type == StorageType.SqlSingle); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- WithStatement.cs
- WriterOutput.cs
- DataSourceXmlAttributeAttribute.cs
- OrCondition.cs
- IntegrationExceptionEventArgs.cs
- SequentialWorkflowRootDesigner.cs
- DbXmlEnabledProviderManifest.cs
- SkinBuilder.cs
- ToolStripDropDownMenu.cs
- Parameter.cs
- PipelineModuleStepContainer.cs
- XmlUtil.cs
- NativeRightsManagementAPIsStructures.cs
- SemaphoreFullException.cs
- CodeBinaryOperatorExpression.cs
- WsdlInspector.cs
- DecimalAnimationUsingKeyFrames.cs
- TextViewBase.cs
- FeatureSupport.cs
- HyperLinkField.cs
- DbTransaction.cs
- DataObjectSettingDataEventArgs.cs
- SqlCommand.cs
- UpDownBaseDesigner.cs
- XmlSchemaInfo.cs
- ProcessModuleDesigner.cs
- RenderData.cs
- TreeNodeBindingCollection.cs
- InternalPolicyElement.cs
- ProcessProtocolHandler.cs
- ValidatorCompatibilityHelper.cs
- FormsIdentity.cs
- XamlInt32CollectionSerializer.cs
- PositiveTimeSpanValidator.cs
- ConfigUtil.cs
- ExpanderAutomationPeer.cs
- NotifyCollectionChangedEventArgs.cs
- ViewDesigner.cs
- InternalCache.cs
- Fonts.cs
- DataGridViewRowConverter.cs
- SoundPlayerAction.cs
- StateWorkerRequest.cs
- TextDecorationCollectionConverter.cs
- StructuralCache.cs
- Visual3D.cs
- Lookup.cs
- SplineKeyFrames.cs
- tooltip.cs
- UpdateRecord.cs
- ContainerUIElement3D.cs
- UriTemplateClientFormatter.cs
- GenerateHelper.cs
- AddInContractAttribute.cs
- DetailsView.cs
- BinaryConverter.cs
- PointLightBase.cs
- HierarchicalDataSourceControl.cs
- BidPrivateBase.cs
- ReferenceEqualityComparer.cs
- TCEAdapterGenerator.cs
- UpdatableGenericsFeature.cs
- CheckPair.cs
- DataGridSortCommandEventArgs.cs
- XamlHostingSectionGroup.cs
- QueryContinueDragEventArgs.cs
- DelegatingConfigHost.cs
- Reference.cs
- DocumentOrderComparer.cs
- TailPinnedEventArgs.cs
- FixedHyperLink.cs
- SoapTransportImporter.cs
- ValueType.cs
- ConfigXmlAttribute.cs
- TextParaLineResult.cs
- MsmqAppDomainProtocolHandler.cs
- WpfKnownType.cs
- Renderer.cs
- LogSwitch.cs
- MarkupProperty.cs
- SqlServices.cs
- GridViewItemAutomationPeer.cs
- ListBoxItemWrapperAutomationPeer.cs
- ParserHooks.cs
- PngBitmapDecoder.cs
- ImageIndexEditor.cs
- EncryptedPackageFilter.cs
- SimpleHandlerBuildProvider.cs
- PermissionSetTriple.cs
- MsmqIntegrationProcessProtocolHandler.cs
- IFlowDocumentViewer.cs
- AnimationClockResource.cs
- _TimerThread.cs
- InputProviderSite.cs
- XamlClipboardData.cs
- log.cs
- MethodImplAttribute.cs
- SiteMapDataSourceView.cs
- DataException.cs
- PagePropertiesChangingEventArgs.cs