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
- SharedPersonalizationStateInfo.cs
- FrameworkContentElement.cs
- StringFunctions.cs
- XmlSchemaComplexType.cs
- AppDomainFactory.cs
- Vector3D.cs
- SynchronousSendBindingElement.cs
- CharacterMetricsDictionary.cs
- LinqDataSourceDeleteEventArgs.cs
- TableAdapterManagerNameHandler.cs
- InstanceLockedException.cs
- MiniMapControl.xaml.cs
- MobileControlDesigner.cs
- TreeBuilder.cs
- RadialGradientBrush.cs
- HtmlTableCell.cs
- ListViewHitTestInfo.cs
- SafeProcessHandle.cs
- CollectionViewGroup.cs
- DesignTimeParseData.cs
- UnsafeMethods.cs
- FixedFlowMap.cs
- Shared.cs
- XmlSchema.cs
- CorrelationExtension.cs
- AttributeQuery.cs
- RuntimeConfig.cs
- DurationConverter.cs
- Unit.cs
- SrgsRuleRef.cs
- Condition.cs
- ImpersonateTokenRef.cs
- DBParameter.cs
- DesignerDataSchemaClass.cs
- PreviewPageInfo.cs
- TextTrailingCharacterEllipsis.cs
- DataSvcMapFile.cs
- BackStopAuthenticationModule.cs
- UmAlQuraCalendar.cs
- InternalRelationshipCollection.cs
- SQLDouble.cs
- NetTcpBinding.cs
- WebPartDisplayMode.cs
- Roles.cs
- sapiproxy.cs
- ColorContext.cs
- BlurEffect.cs
- SafePointer.cs
- PolyLineSegment.cs
- InputDevice.cs
- InputMethodStateTypeInfo.cs
- QuotedPrintableStream.cs
- PrinterResolution.cs
- ContentElement.cs
- log.cs
- ExtentKey.cs
- QueueProcessor.cs
- DisplayMemberTemplateSelector.cs
- SerTrace.cs
- NativeRecognizer.cs
- Lasso.cs
- DataControlField.cs
- WindowsStreamSecurityBindingElement.cs
- WebHostedComPlusServiceHost.cs
- AnnouncementEndpointElement.cs
- ListViewSelectEventArgs.cs
- DataRecordObjectView.cs
- EncryptedReference.cs
- Brushes.cs
- OleDbTransaction.cs
- RequestCachingSection.cs
- DesignTimeDataBinding.cs
- SQLString.cs
- SiteMapNodeCollection.cs
- Substitution.cs
- PrimitiveType.cs
- ConstNode.cs
- SqlWebEventProvider.cs
- TagPrefixCollection.cs
- SchemaImporterExtension.cs
- XmlDocument.cs
- QilInvoke.cs
- HeaderCollection.cs
- RelationalExpressions.cs
- EntityCollection.cs
- UnmanagedMemoryStreamWrapper.cs
- WinEventWrap.cs
- CmsInterop.cs
- LineSegment.cs
- Base64Decoder.cs
- CodeIdentifier.cs
- InputMethod.cs
- WebRequestModulesSection.cs
- SystemIPGlobalStatistics.cs
- Context.cs
- HTTP_SERVICE_CONFIG_URLACL_PARAM.cs
- SchemaExporter.cs
- XmlHierarchicalEnumerable.cs
- FacetChecker.cs
- DodSequenceMerge.cs