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
- ListControl.cs
- PrinterUnitConvert.cs
- ProfileInfo.cs
- ErrorWebPart.cs
- Win32SafeHandles.cs
- SubqueryRules.cs
- XmlQueryOutput.cs
- PathSegment.cs
- SqlBulkCopyColumnMappingCollection.cs
- GPPOINT.cs
- SourceFileBuildProvider.cs
- PropertyDescriptorCollection.cs
- ConfigurationLocation.cs
- RightNameExpirationInfoPair.cs
- TableColumnCollection.cs
- MessageRpc.cs
- Light.cs
- Vector3DAnimation.cs
- BidirectionalDictionary.cs
- DivideByZeroException.cs
- RegistrationServices.cs
- SqlDataSourceCustomCommandEditor.cs
- RegistryConfigurationProvider.cs
- ElementNotEnabledException.cs
- SignedXml.cs
- Win32.cs
- ArraySortHelper.cs
- ButtonBaseAutomationPeer.cs
- MetadataUtilsSmi.cs
- SamlAdvice.cs
- PasswordPropertyTextAttribute.cs
- SystemIcmpV4Statistics.cs
- lengthconverter.cs
- FloaterBaseParagraph.cs
- Simplifier.cs
- ByteRangeDownloader.cs
- TreeNode.cs
- PatternMatchRules.cs
- Msec.cs
- TraceContext.cs
- LiteralLink.cs
- MediaSystem.cs
- DbProviderSpecificTypePropertyAttribute.cs
- DataTableReader.cs
- SchemaRegistration.cs
- GridViewRowEventArgs.cs
- WebServiceHandlerFactory.cs
- Pair.cs
- Trace.cs
- SetStoryboardSpeedRatio.cs
- DataGridTextBox.cs
- PhysicalFontFamily.cs
- WorkflowPersistenceContext.cs
- Util.cs
- TranslateTransform3D.cs
- MediaElement.cs
- ObjectRef.cs
- TraceSection.cs
- SettingsPropertyCollection.cs
- RegisteredScript.cs
- ControlCodeDomSerializer.cs
- PageTrueTypeFont.cs
- DrawItemEvent.cs
- WeakReferenceEnumerator.cs
- GenericTypeParameterBuilder.cs
- EntryPointNotFoundException.cs
- NumberSubstitution.cs
- RoleServiceManager.cs
- StateWorkerRequest.cs
- DrawTreeNodeEventArgs.cs
- HasCopySemanticsAttribute.cs
- HMACSHA1.cs
- EventPropertyMap.cs
- EDesignUtil.cs
- RequestResizeEvent.cs
- ConsoleCancelEventArgs.cs
- HttpApplication.cs
- ContextInformation.cs
- SettingsPropertyNotFoundException.cs
- NullableConverter.cs
- ListManagerBindingsCollection.cs
- CalendarDay.cs
- SqlReorderer.cs
- WebHttpSecurityElement.cs
- CodeSnippetTypeMember.cs
- GCHandleCookieTable.cs
- HelloMessageApril2005.cs
- FileSystemEventArgs.cs
- UIElementParagraph.cs
- LambdaExpression.cs
- CodeDOMUtility.cs
- DynamicActionMessageFilter.cs
- DataGridViewComboBoxColumn.cs
- XmlSerializerAssemblyAttribute.cs
- TimerElapsedEvenArgs.cs
- ErrorRuntimeConfig.cs
- Update.cs
- PropertyValueUIItem.cs
- ConnectionManagementElementCollection.cs
- Publisher.cs