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
- TabItemWrapperAutomationPeer.cs
- OracleColumn.cs
- AssemblyNameProxy.cs
- hwndwrapper.cs
- DictionaryEntry.cs
- ExceptionUtil.cs
- DataGridViewButtonColumn.cs
- SvcMapFileLoader.cs
- _BaseOverlappedAsyncResult.cs
- XmlCharCheckingWriter.cs
- CalendarDesigner.cs
- AspNetSynchronizationContext.cs
- XmlSecureResolver.cs
- DataGridCellAutomationPeer.cs
- QfeChecker.cs
- DateRangeEvent.cs
- GradientStopCollection.cs
- RegionIterator.cs
- MessageFilterException.cs
- TemplatePropertyEntry.cs
- XmlSiteMapProvider.cs
- CompModSwitches.cs
- HtmlSelect.cs
- DbProviderFactory.cs
- Table.cs
- RadioButtonBaseAdapter.cs
- RoleManagerSection.cs
- SwitchLevelAttribute.cs
- ResourceDescriptionAttribute.cs
- ClusterSafeNativeMethods.cs
- FocusChangedEventArgs.cs
- XPathException.cs
- DbConnectionPoolOptions.cs
- httpstaticobjectscollection.cs
- WindowsFormsLinkLabel.cs
- PropertyItem.cs
- DataGridViewTextBoxCell.cs
- ResourceProperty.cs
- CapabilitiesState.cs
- EffectiveValueEntry.cs
- SmiEventSink_DeferedProcessing.cs
- ResourcePermissionBaseEntry.cs
- HatchBrush.cs
- UserNameSecurityToken.cs
- Timer.cs
- XmlName.cs
- PropertyOverridesTypeEditor.cs
- MonitoringDescriptionAttribute.cs
- GroupStyle.cs
- cookieexception.cs
- EdmSchemaAttribute.cs
- UIElementHelper.cs
- InputLanguageEventArgs.cs
- ConnectionConsumerAttribute.cs
- DragEvent.cs
- OleDbDataReader.cs
- XPathCompileException.cs
- CopyNamespacesAction.cs
- MaskedTextBox.cs
- EntityDataSourceMemberPath.cs
- SingleAnimationUsingKeyFrames.cs
- MissingManifestResourceException.cs
- AudienceUriMode.cs
- ImageField.cs
- MembershipPasswordException.cs
- Label.cs
- CellPartitioner.cs
- DataKeyCollection.cs
- SpeechDetectedEventArgs.cs
- Composition.cs
- JsonEnumDataContract.cs
- VectorValueSerializer.cs
- CompiledIdentityConstraint.cs
- TextParentUndoUnit.cs
- SafeUserTokenHandle.cs
- DbModificationClause.cs
- CuspData.cs
- UrlMappingsSection.cs
- Model3DGroup.cs
- HMACSHA256.cs
- DataGridViewTopRowAccessibleObject.cs
- Rijndael.cs
- EmptyWorkItem.cs
- ToolboxControl.cs
- DataPointer.cs
- Material.cs
- AppModelKnownContentFactory.cs
- WindowsGraphics.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- DataColumnSelectionConverter.cs
- TabControlCancelEvent.cs
- sqlnorm.cs
- StateWorkerRequest.cs
- BitSet.cs
- WebException.cs
- RemotingAttributes.cs
- CollectionConverter.cs
- ellipse.cs
- FrugalList.cs
- PersonalizationProviderCollection.cs