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
- CngProperty.cs
- TypeForwardedToAttribute.cs
- HttpRequestCacheValidator.cs
- AccessorTable.cs
- RevocationPoint.cs
- TypeNameConverter.cs
- _TLSstream.cs
- CrossSiteScriptingValidation.cs
- RangeValueProviderWrapper.cs
- AutoSizeComboBox.cs
- CursorConverter.cs
- DataGridViewLayoutData.cs
- XPathNodeInfoAtom.cs
- XmlException.cs
- ProcessModule.cs
- VectorAnimationBase.cs
- FontDriver.cs
- DetailsViewUpdateEventArgs.cs
- SerialPort.cs
- BitmapSourceSafeMILHandle.cs
- BypassElementCollection.cs
- BaseServiceProvider.cs
- PhysicalFontFamily.cs
- GraphicsPath.cs
- OutputCacheModule.cs
- SqlCacheDependencyDatabaseCollection.cs
- ObjectCache.cs
- FirstMatchCodeGroup.cs
- HttpRawResponse.cs
- CreateUserWizard.cs
- NavigationWindowAutomationPeer.cs
- XmlSchemaImport.cs
- DocComment.cs
- DrawTreeNodeEventArgs.cs
- OdbcError.cs
- FolderNameEditor.cs
- TextServicesLoader.cs
- DataGridTablesFactory.cs
- SurrogateEncoder.cs
- UIElement.cs
- DbDataRecord.cs
- FacetValueContainer.cs
- DragEventArgs.cs
- PolyBezierSegmentFigureLogic.cs
- MarkupExtensionSerializer.cs
- ObjectDataSourceWizardForm.cs
- ResXDataNode.cs
- FileSystemWatcher.cs
- IndicFontClient.cs
- Win32Native.cs
- AttributeTableBuilder.cs
- URLString.cs
- SqlComparer.cs
- IteratorFilter.cs
- PageThemeCodeDomTreeGenerator.cs
- DataGridViewColumnEventArgs.cs
- HttpFileCollection.cs
- CodeNamespaceImport.cs
- OdbcConnectionFactory.cs
- FontFamilyValueSerializer.cs
- Operand.cs
- ColorConverter.cs
- TimeZone.cs
- AppDomainInfo.cs
- DataGridViewIntLinkedList.cs
- CodeBlockBuilder.cs
- Unit.cs
- TemplateContent.cs
- ChannelDispatcherCollection.cs
- Main.cs
- FontNamesConverter.cs
- Native.cs
- RepeaterCommandEventArgs.cs
- PeerCollaborationPermission.cs
- SqlParameterizer.cs
- QueryOperatorEnumerator.cs
- CultureTableRecord.cs
- MatrixTransform.cs
- XmlDataImplementation.cs
- ColorConvertedBitmapExtension.cs
- OperationAbortedException.cs
- BindableAttribute.cs
- RegexRunnerFactory.cs
- BinaryReader.cs
- CurrencyWrapper.cs
- CompareValidator.cs
- HierarchicalDataBoundControlAdapter.cs
- CompositeCollectionView.cs
- PreservationFileWriter.cs
- LocalizeDesigner.cs
- InvokeMethodActivity.cs
- DataGridViewButtonColumn.cs
- LinqDataSourceStatusEventArgs.cs
- RegionIterator.cs
- XmlSchemaSimpleTypeUnion.cs
- _CommandStream.cs
- StorageMappingItemLoader.cs
- SiteMapNodeItem.cs
- ViewCellSlot.cs
- __TransparentProxy.cs