Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / Data / System / Data / Filter / ExpressionNode.cs / 1 / 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. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Calendar.cs
- DocumentPageViewAutomationPeer.cs
- ScriptControlManager.cs
- LinearGradientBrush.cs
- SafeThemeHandle.cs
- RequestBringIntoViewEventArgs.cs
- Message.cs
- FacetValueContainer.cs
- BackgroundWorker.cs
- SqlCacheDependencyDatabase.cs
- PhysicalFontFamily.cs
- _ListenerResponseStream.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- ObjectItemAssemblyLoader.cs
- Application.cs
- MSAANativeProvider.cs
- XmlCharCheckingWriter.cs
- Point3DValueSerializer.cs
- InkCanvas.cs
- httpapplicationstate.cs
- DocumentPropertiesDialog.cs
- DataBoundControlHelper.cs
- ForwardPositionQuery.cs
- MessageVersion.cs
- SizeAnimationUsingKeyFrames.cs
- SessionEndingEventArgs.cs
- RootBrowserWindowAutomationPeer.cs
- GeneralTransform.cs
- BuiltInExpr.cs
- ChainOfResponsibility.cs
- ListControl.cs
- OuterGlowBitmapEffect.cs
- OutOfMemoryException.cs
- ToolStripComboBox.cs
- SchemaManager.cs
- MessageQueuePermissionAttribute.cs
- WebServiceData.cs
- PlainXmlWriter.cs
- WsatProxy.cs
- MessageSecurityProtocolFactory.cs
- SapiGrammar.cs
- XPathItem.cs
- IteratorFilter.cs
- AbandonedMutexException.cs
- NeedSkipTokenVisitor.cs
- GetWinFXPath.cs
- ObjectDataSourceFilteringEventArgs.cs
- FrameworkContentElement.cs
- ControlCollection.cs
- AppDomainCompilerProxy.cs
- SelectQueryOperator.cs
- _KerberosClient.cs
- ManifestResourceInfo.cs
- CorrelationResolver.cs
- RepeaterItemEventArgs.cs
- TwoPhaseCommit.cs
- QuarticEase.cs
- StructuredType.cs
- SamlNameIdentifierClaimResource.cs
- COMException.cs
- XmlSecureResolver.cs
- TypeConverterHelper.cs
- Int64.cs
- EmptyCollection.cs
- basenumberconverter.cs
- WebControlAdapter.cs
- CacheChildrenQuery.cs
- Parser.cs
- _SslState.cs
- StringFreezingAttribute.cs
- ProviderConnectionPoint.cs
- InvokePatternIdentifiers.cs
- AspProxy.cs
- WebResourceUtil.cs
- RecommendedAsConfigurableAttribute.cs
- Pts.cs
- NonDualMessageSecurityOverHttpElement.cs
- GridViewColumn.cs
- dtdvalidator.cs
- AnnotationStore.cs
- ElementInit.cs
- CheckBox.cs
- EndEvent.cs
- ScriptControl.cs
- Label.cs
- CmsInterop.cs
- ProfileGroupSettingsCollection.cs
- ClientFormsIdentity.cs
- XmlSerializerSection.cs
- MatrixAnimationUsingKeyFrames.cs
- BinaryFormatter.cs
- StorageAssociationSetMapping.cs
- X509WindowsSecurityToken.cs
- RegionIterator.cs
- GenericsInstances.cs
- CurrentChangingEventManager.cs
- CharacterShapingProperties.cs
- externdll.cs
- LayoutTable.cs
- ProjectionCamera.cs