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
- WindowsContainer.cs
- CodeMemberEvent.cs
- CustomAttributeSerializer.cs
- WebProxyScriptElement.cs
- KeyMatchBuilder.cs
- ObjectDataSourceSelectingEventArgs.cs
- X509AsymmetricSecurityKey.cs
- SimpleFieldTemplateUserControl.cs
- Baml6ConstructorInfo.cs
- HttpCacheParams.cs
- ProviderManager.cs
- XmlUtf8RawTextWriter.cs
- IdentityHolder.cs
- HttpAsyncResult.cs
- EncoderBestFitFallback.cs
- SafeNativeMethods.cs
- _NegoStream.cs
- FormView.cs
- OperationContext.cs
- HttpProtocolImporter.cs
- ComUdtElementCollection.cs
- MonthChangedEventArgs.cs
- CompositionTarget.cs
- ActivityBuilderXamlWriter.cs
- ColumnClickEvent.cs
- TextPointerBase.cs
- SourceFileBuildProvider.cs
- ServiceControllerDesigner.cs
- VectorCollectionConverter.cs
- QilGenerator.cs
- DependsOnAttribute.cs
- UrlPath.cs
- MsmqIntegrationBinding.cs
- SortDescription.cs
- PerformanceCounterPermission.cs
- DbResourceAllocator.cs
- OutOfMemoryException.cs
- UInt32Storage.cs
- HyperLinkField.cs
- ConnectionPoolManager.cs
- HttpAsyncResult.cs
- ResourceSet.cs
- QilTernary.cs
- DuplicateWaitObjectException.cs
- ObjectComplexPropertyMapping.cs
- SqlProvider.cs
- EventLogQuery.cs
- Popup.cs
- DashStyles.cs
- UIElement3DAutomationPeer.cs
- SchemaTypeEmitter.cs
- __Error.cs
- OdbcEnvironmentHandle.cs
- ColorConverter.cs
- CheckBoxField.cs
- Char.cs
- DNS.cs
- DataRowView.cs
- TemplateComponentConnector.cs
- HttpProtocolReflector.cs
- RegexStringValidator.cs
- IDQuery.cs
- CollectionMarkupSerializer.cs
- ModuleBuilder.cs
- SimpleBitVector32.cs
- UnauthorizedWebPart.cs
- ResourcePropertyMemberCodeDomSerializer.cs
- ConversionContext.cs
- RsaElement.cs
- Vector3DKeyFrameCollection.cs
- UnauthorizedAccessException.cs
- SourceFileInfo.cs
- ClosableStream.cs
- LocalizableResourceBuilder.cs
- ButtonBaseAutomationPeer.cs
- SectionInformation.cs
- MsmqOutputChannel.cs
- ProcessProtocolHandler.cs
- ProfileManager.cs
- LambdaCompiler.Expressions.cs
- MessageDesigner.cs
- StickyNote.cs
- LayoutEvent.cs
- securitycriticaldata.cs
- DataObjectAttribute.cs
- ClientUtils.cs
- GPStream.cs
- ProviderSettings.cs
- RelationshipEndMember.cs
- OLEDB_Util.cs
- ContainerControl.cs
- QuestionEventArgs.cs
- ConfigurationLocation.cs
- EntitySqlQueryCacheKey.cs
- AbandonedMutexException.cs
- CryptoSession.cs
- DynamicDocumentPaginator.cs
- TextTreeText.cs
- FilterableData.cs
- EdmSchemaAttribute.cs