Code:
/ DotNET / DotNET / 8.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
- MimeTextImporter.cs
- SAPICategories.cs
- XmlImplementation.cs
- EventEntry.cs
- TableLayoutPanelResizeGlyph.cs
- TransformerInfoCollection.cs
- DefaultSection.cs
- PointAnimationClockResource.cs
- CreateUserWizardAutoFormat.cs
- Base64Stream.cs
- WizardStepCollectionEditor.cs
- NameService.cs
- BaseAsyncResult.cs
- SafeNativeMethods.cs
- TreeNodeBindingCollection.cs
- SequenceQuery.cs
- XmlSchemaComplexContentRestriction.cs
- ResourcePermissionBaseEntry.cs
- PersonalizationProviderHelper.cs
- ComponentDispatcherThread.cs
- XmlMembersMapping.cs
- Dictionary.cs
- TabletDevice.cs
- ThreadAttributes.cs
- ImageClickEventArgs.cs
- X509CertificateStore.cs
- AssociativeAggregationOperator.cs
- DoubleAnimation.cs
- CommentGlyph.cs
- WebResourceAttribute.cs
- TextDpi.cs
- SQLBinaryStorage.cs
- ListBoxItemAutomationPeer.cs
- Animatable.cs
- remotingproxy.cs
- TextContainerChangeEventArgs.cs
- PropertyHelper.cs
- MetadataItem.cs
- VBCodeProvider.cs
- InheritanceContextHelper.cs
- AttributeExtensions.cs
- SqlProvider.cs
- ScrollItemPatternIdentifiers.cs
- ContentPlaceHolder.cs
- ListDependantCardsRequest.cs
- InkCanvasSelectionAdorner.cs
- ValidatorAttribute.cs
- ChannelBinding.cs
- WorkflowMarkupSerializationProvider.cs
- XmlLoader.cs
- RequestContextBase.cs
- documentsequencetextview.cs
- OracleTimeSpan.cs
- QueryStringParameter.cs
- Accessible.cs
- CapabilitiesAssignment.cs
- WSSecurityPolicy12.cs
- JournalEntry.cs
- DataTableTypeConverter.cs
- CreateUserWizardAutoFormat.cs
- TouchesCapturedWithinProperty.cs
- DesignerCatalogPartChrome.cs
- XPathException.cs
- SqlDependencyListener.cs
- PrimaryKeyTypeConverter.cs
- CompoundFileReference.cs
- ResourceDictionary.cs
- ImportContext.cs
- NumberFormatInfo.cs
- Membership.cs
- CorrelationQueryBehavior.cs
- AutomationTextAttribute.cs
- DataRowIndexBuffer.cs
- UInt32Storage.cs
- LinqDataSourceInsertEventArgs.cs
- DataBoundControlHelper.cs
- PropertyEmitter.cs
- IListConverters.cs
- ParameterBuilder.cs
- DbParameterCollectionHelper.cs
- UInt64Converter.cs
- ListMarkerLine.cs
- EventToken.cs
- BaseTemplateBuildProvider.cs
- XsltArgumentList.cs
- AesCryptoServiceProvider.cs
- DataGridViewDataErrorEventArgs.cs
- FixedDSBuilder.cs
- LinkUtilities.cs
- InputChannelBinder.cs
- NotifyCollectionChangedEventArgs.cs
- ValuePattern.cs
- ElementMarkupObject.cs
- TextOnlyOutput.cs
- ContentFilePart.cs
- HitTestFilterBehavior.cs
- XpsSerializationManagerAsync.cs
- EngineSite.cs
- JsonClassDataContract.cs
- MediaElementAutomationPeer.cs