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
- ManagedWndProcTracker.cs
- SymmetricKeyWrap.cs
- ProxyWebPartConnectionCollection.cs
- columnmapkeybuilder.cs
- UnlockCardRequest.cs
- ThreadTrace.cs
- Int16.cs
- LayoutSettings.cs
- ExtenderProvidedPropertyAttribute.cs
- ToolboxItemCollection.cs
- BroadcastEventHelper.cs
- Clock.cs
- BitmapImage.cs
- SmiContextFactory.cs
- ColorContextHelper.cs
- ManipulationPivot.cs
- XmlWrappingWriter.cs
- FixedPageAutomationPeer.cs
- StatusBarPanelClickEvent.cs
- ItemAutomationPeer.cs
- DBConnectionString.cs
- CompoundFileDeflateTransform.cs
- EmptyControlCollection.cs
- SQLResource.cs
- XhtmlBasicControlAdapter.cs
- SoapFault.cs
- ToolStripContainerDesigner.cs
- NativeMethods.cs
- TrustManagerPromptUI.cs
- TargetControlTypeCache.cs
- SimplePropertyEntry.cs
- NetCodeGroup.cs
- EntityTypeEmitter.cs
- NavigationPropertyEmitter.cs
- Soap12ServerProtocol.cs
- BlobPersonalizationState.cs
- LostFocusEventManager.cs
- EntityModelBuildProvider.cs
- nulltextcontainer.cs
- MetadataItem_Static.cs
- AutoGeneratedField.cs
- AnnotationService.cs
- Int16AnimationUsingKeyFrames.cs
- DataView.cs
- GlyphCache.cs
- DataServiceClientException.cs
- NavigationWindowAutomationPeer.cs
- XPathQilFactory.cs
- Column.cs
- WorkflowLayouts.cs
- ByteStack.cs
- SqlDataSource.cs
- PrintDialogException.cs
- UpdateProgress.cs
- FixedSOMGroup.cs
- TableCellCollection.cs
- FacetEnabledSchemaElement.cs
- TextTreeExtractElementUndoUnit.cs
- DeviceContexts.cs
- HttpCacheParams.cs
- InvokeGenerator.cs
- MetadataArtifactLoader.cs
- ConfigurationSectionCollection.cs
- _NegoState.cs
- AssociationSetMetadata.cs
- ContractComponent.cs
- DeclarativeCatalogPart.cs
- TextParentUndoUnit.cs
- DebugHandleTracker.cs
- X509Certificate2.cs
- EvidenceTypeDescriptor.cs
- HtmlControlPersistable.cs
- ObjRef.cs
- _ContextAwareResult.cs
- DesignTimeTemplateParser.cs
- InstancePersistenceEvent.cs
- webeventbuffer.cs
- DataGridViewDesigner.cs
- safex509handles.cs
- Canvas.cs
- DataGridViewCellPaintingEventArgs.cs
- CustomErrorCollection.cs
- InvalidDataException.cs
- DrawingContext.cs
- SimpleWorkerRequest.cs
- DataRelationPropertyDescriptor.cs
- AutomationTextAttribute.cs
- DataGridRowHeader.cs
- MediaPlayerState.cs
- NativeMethods.cs
- LicenseManager.cs
- WsdlParser.cs
- SerializationInfoEnumerator.cs
- Crypto.cs
- UIElement3DAutomationPeer.cs
- ItemType.cs
- SaveFileDialog.cs
- TypeForwardedToAttribute.cs
- StringPropertyBuilder.cs
- FullTextState.cs