Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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, List list);
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.
//
// [....]
// [....]
// [....]
//-----------------------------------------------------------------------------
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, List list);
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
- QueryExpr.cs
- Application.cs
- GatewayDefinition.cs
- AuthenticationException.cs
- DataBoundControlHelper.cs
- ButtonChrome.cs
- PartitionerStatic.cs
- ContractMapping.cs
- GacUtil.cs
- OrderedDictionaryStateHelper.cs
- securitycriticaldataClass.cs
- SystemBrushes.cs
- _Semaphore.cs
- EnumerableCollectionView.cs
- DiscreteKeyFrames.cs
- VirtualPathUtility.cs
- FormsAuthenticationConfiguration.cs
- SpotLight.cs
- EmptyStringExpandableObjectConverter.cs
- SymbolEqualComparer.cs
- ViewStateException.cs
- TargetInvocationException.cs
- BreakSafeBase.cs
- QueryRewriter.cs
- CursorConverter.cs
- SqlClientMetaDataCollectionNames.cs
- BindStream.cs
- input.cs
- RuntimeCompatibilityAttribute.cs
- XmlSchemaChoice.cs
- SchemaMapping.cs
- CodeExpressionRuleDeclaration.cs
- ResXResourceWriter.cs
- GridViewDeleteEventArgs.cs
- NonVisualControlAttribute.cs
- StorageMappingFragment.cs
- AssemblyNameEqualityComparer.cs
- DebugView.cs
- TabletCollection.cs
- NonSerializedAttribute.cs
- SyndicationContent.cs
- CompressEmulationStream.cs
- GeneralTransform3D.cs
- CodeObject.cs
- Size3DConverter.cs
- QilGenerator.cs
- AnyAllSearchOperator.cs
- UnsignedPublishLicense.cs
- InputProcessorProfiles.cs
- ToolStripItemRenderEventArgs.cs
- GlyphRunDrawing.cs
- SudsWriter.cs
- BasicKeyConstraint.cs
- ProfilePropertyNameValidator.cs
- ComponentEditorPage.cs
- CalculatedColumn.cs
- XmlRootAttribute.cs
- HtmlCommandAdapter.cs
- UnsafeCollabNativeMethods.cs
- Error.cs
- CommandLibraryHelper.cs
- BamlLocalizabilityResolver.cs
- Schema.cs
- WebPartCancelEventArgs.cs
- EntityChangedParams.cs
- AsyncOperation.cs
- xsdvalidator.cs
- DataGridViewDataErrorEventArgs.cs
- FixedPage.cs
- XsltSettings.cs
- CellParaClient.cs
- SelectionItemPattern.cs
- PropertyEmitter.cs
- EnumBuilder.cs
- WebPartCatalogAddVerb.cs
- MemberRelationshipService.cs
- AcceleratedTokenAuthenticator.cs
- InkSerializer.cs
- Clipboard.cs
- BaseServiceProvider.cs
- UserControlAutomationPeer.cs
- EditableTreeList.cs
- DateTimeOffset.cs
- OrCondition.cs
- SoapObjectWriter.cs
- PostBackTrigger.cs
- UIElementHelper.cs
- ExpressionConverter.cs
- Baml2006KeyRecord.cs
- DtdParser.cs
- Missing.cs
- LazyTextWriterCreator.cs
- DocumentPaginator.cs
- MexServiceChannelBuilder.cs
- CompressedStack.cs
- ResourceDescriptionAttribute.cs
- QueryOptionExpression.cs
- EditorPart.cs
- NameValueSectionHandler.cs
- ActivityBuilderXamlWriter.cs