Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Data / System / Data / Filter / ExpressionNode.cs / 1305376 / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- IResourceProvider.cs
- GridViewUpdateEventArgs.cs
- SqlTypesSchemaImporter.cs
- GridSplitterAutomationPeer.cs
- mansign.cs
- EnumMember.cs
- DecimalFormatter.cs
- Hyperlink.cs
- MenuItemBinding.cs
- SHA1CryptoServiceProvider.cs
- InputGestureCollection.cs
- OdbcError.cs
- SiteMapDataSourceView.cs
- WsatAdminException.cs
- ConfigurationStrings.cs
- Transactions.cs
- VsPropertyGrid.cs
- XmlHierarchicalDataSourceView.cs
- RuleAction.cs
- XamlGridLengthSerializer.cs
- SpellCheck.cs
- ControlParser.cs
- TypeNameParser.cs
- NetTcpBindingCollectionElement.cs
- FrameworkContentElement.cs
- SubMenuStyleCollectionEditor.cs
- BackStopAuthenticationModule.cs
- Clipboard.cs
- Span.cs
- SafePointer.cs
- ComponentConverter.cs
- ItemList.cs
- SmiEventSink_DeferedProcessing.cs
- CurrentTimeZone.cs
- EmptyImpersonationContext.cs
- SmtpFailedRecipientsException.cs
- QueueException.cs
- HttpCookiesSection.cs
- MessageSecurityTokenVersion.cs
- LocatorBase.cs
- ReceiveSecurityHeaderElementManager.cs
- DefaultEventAttribute.cs
- PointCollectionConverter.cs
- InheritanceContextChangedEventManager.cs
- ControlCachePolicy.cs
- EmptyControlCollection.cs
- RTLAwareMessageBox.cs
- PropertyDescriptor.cs
- Calendar.cs
- XmlIncludeAttribute.cs
- TreeViewItem.cs
- InvalidOperationException.cs
- ServiceOperationUIEditor.cs
- RenderData.cs
- MergeFilterQuery.cs
- NullableBoolConverter.cs
- ITextView.cs
- PrinterSettings.cs
- InertiaExpansionBehavior.cs
- InvokeDelegate.cs
- IsolatedStorageFilePermission.cs
- OverlappedContext.cs
- SystemTcpConnection.cs
- ObjectReaderCompiler.cs
- LabelLiteral.cs
- IxmlLineInfo.cs
- StdValidatorsAndConverters.cs
- HtmlContainerControl.cs
- MemberPath.cs
- SettingsAttributeDictionary.cs
- DataColumnMapping.cs
- Accessible.cs
- CodeSubDirectoriesCollection.cs
- XPathNodeInfoAtom.cs
- latinshape.cs
- RegexFCD.cs
- SpeakInfo.cs
- WebPartZoneAutoFormat.cs
- SynchronizationContext.cs
- RotateTransform3D.cs
- HwndSource.cs
- ContextInformation.cs
- KeyValueInternalCollection.cs
- Condition.cs
- SpellerInterop.cs
- NodeInfo.cs
- MethodBuilder.cs
- ClientEventManager.cs
- GroupStyle.cs
- CLSCompliantAttribute.cs
- AdvancedBindingEditor.cs
- ListViewHitTestInfo.cs
- JapaneseCalendar.cs
- ObjectTag.cs
- ContentPlaceHolder.cs
- MessageBuffer.cs
- UnknownBitmapEncoder.cs
- MemberDescriptor.cs
- PersonalizationStateQuery.cs
- Object.cs