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
- PermissionToken.cs
- RowToParametersTransformer.cs
- SchemaElementLookUpTableEnumerator.cs
- RuleSetDialog.Designer.cs
- DataContractSerializerOperationGenerator.cs
- DesignColumnCollection.cs
- UpdatePanelTriggerCollection.cs
- XamlToRtfParser.cs
- ScrollEvent.cs
- GridViewRowCollection.cs
- UTF8Encoding.cs
- GeometryModel3D.cs
- ObjRef.cs
- SynchronizedMessageSource.cs
- GridViewRowCollection.cs
- PermissionSetEnumerator.cs
- SqlUdtInfo.cs
- TableProviderWrapper.cs
- PresentationSource.cs
- Vector3DCollection.cs
- FileNotFoundException.cs
- DependencyPropertyKey.cs
- XmlUtilWriter.cs
- SelectionRange.cs
- LogLogRecordHeader.cs
- Win32KeyboardDevice.cs
- HotSpot.cs
- ToolboxItem.cs
- SafeUserTokenHandle.cs
- HtmlHead.cs
- linebase.cs
- Context.cs
- KeyPressEvent.cs
- NamespaceListProperty.cs
- SortedDictionary.cs
- BrushValueSerializer.cs
- FixedSOMFixedBlock.cs
- xamlnodes.cs
- DecimalStorage.cs
- InfoCardRSAOAEPKeyExchangeDeformatter.cs
- XmlAtomicValue.cs
- ImageAutomationPeer.cs
- PeerInvitationResponse.cs
- Encoder.cs
- RuntimeHelpers.cs
- PreservationFileWriter.cs
- UpdateException.cs
- PropertyDescriptorComparer.cs
- ApplicationSecurityInfo.cs
- BindingManagerDataErrorEventArgs.cs
- FixedDocument.cs
- SystemIcmpV6Statistics.cs
- Parameter.cs
- ConfigurationSectionCollection.cs
- CaseStatementProjectedSlot.cs
- TextDecorationCollection.cs
- StagingAreaInputItem.cs
- EdmComplexTypeAttribute.cs
- GetLastErrorDetailsRequest.cs
- PropertyRecord.cs
- Geometry3D.cs
- COAUTHINFO.cs
- DataShape.cs
- DataSourceHelper.cs
- thaishape.cs
- DockPattern.cs
- RelationshipDetailsRow.cs
- ComNativeDescriptor.cs
- XmlElementAttribute.cs
- NominalTypeEliminator.cs
- TemplateColumn.cs
- Stream.cs
- MetadataItemEmitter.cs
- BitmapImage.cs
- shaperfactoryquerycachekey.cs
- StateMachine.cs
- ClientSettingsStore.cs
- UrlRoutingHandler.cs
- EmptyEnumerable.cs
- ConstantCheck.cs
- UnsafeNativeMethods.cs
- DbConnectionPoolOptions.cs
- JulianCalendar.cs
- OleDbParameterCollection.cs
- HealthMonitoringSectionHelper.cs
- StrokeCollection2.cs
- MatrixKeyFrameCollection.cs
- DateTimeConverter2.cs
- DataGridViewTopRowAccessibleObject.cs
- DefaultValueTypeConverter.cs
- TextParaClient.cs
- FrameworkObject.cs
- tooltip.cs
- WebControl.cs
- JoinCqlBlock.cs
- SingleObjectCollection.cs
- TrustSection.cs
- WindowsMenu.cs
- WindowsGraphicsWrapper.cs
- Root.cs