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
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- BinaryReader.cs
- CqlParserHelpers.cs
- LabelDesigner.cs
- CssStyleCollection.cs
- InputLanguageManager.cs
- MessageParameterAttribute.cs
- CustomValidator.cs
- DirectoryObjectSecurity.cs
- ArrayExtension.cs
- WebPartConnectionsCloseVerb.cs
- ColumnBinding.cs
- ProxyWebPartManager.cs
- ValidateNames.cs
- Button.cs
- SmtpCommands.cs
- SchemaImporterExtensionElementCollection.cs
- ObjectParameterCollection.cs
- JsonStringDataContract.cs
- ConnectionsZone.cs
- StylusSystemGestureEventArgs.cs
- ProviderUtil.cs
- TextServicesCompartmentEventSink.cs
- UncommonField.cs
- DesignerAutoFormatCollection.cs
- WinEventHandler.cs
- TreeNodeCollectionEditor.cs
- SvcMapFileLoader.cs
- FlowDocumentFormatter.cs
- SafeNativeMethods.cs
- ConfigurationHandlersInstallComponent.cs
- SoapExtensionTypeElement.cs
- MetadataFile.cs
- AcceleratedTokenProviderState.cs
- complextypematerializer.cs
- Win32KeyboardDevice.cs
- PolicyValidationException.cs
- EncoderExceptionFallback.cs
- WorkflowOwnerAsyncResult.cs
- DiagnosticTrace.cs
- DataPagerField.cs
- RtfNavigator.cs
- BlockCollection.cs
- SmtpNegotiateAuthenticationModule.cs
- HttpResponseHeader.cs
- KeyValueConfigurationElement.cs
- FileRecordSequenceHelper.cs
- DataGridViewRowDividerDoubleClickEventArgs.cs
- OleDbCommandBuilder.cs
- BindingNavigatorDesigner.cs
- DictionaryEntry.cs
- UndirectedGraph.cs
- EventHandlersStore.cs
- ResourcesBuildProvider.cs
- AggregatePushdown.cs
- ProjectionCamera.cs
- dbdatarecord.cs
- StylusPlugin.cs
- ImportRequest.cs
- ArglessEventHandlerProxy.cs
- VisualState.cs
- DockPattern.cs
- WinFormsSpinner.cs
- WebPartConnectionsDisconnectVerb.cs
- VersionedStreamOwner.cs
- FontDialog.cs
- ExpressionBuilderContext.cs
- DtdParser.cs
- TraceProvider.cs
- SizeFConverter.cs
- DesignerObjectListAdapter.cs
- XappLauncher.cs
- _DisconnectOverlappedAsyncResult.cs
- HttpCacheParams.cs
- ComponentSerializationService.cs
- DataSourceControlBuilder.cs
- ThemeableAttribute.cs
- AppDomainManager.cs
- SectionRecord.cs
- RadioButtonList.cs
- PostBackOptions.cs
- BoundColumn.cs
- EmptyReadOnlyDictionaryInternal.cs
- SecurityRuntime.cs
- IPAddressCollection.cs
- CodeNamespaceImport.cs
- DelegatedStream.cs
- UITypeEditor.cs
- GridViewRow.cs
- GridViewPageEventArgs.cs
- SemaphoreSlim.cs
- PagesChangedEventArgs.cs
- TypeBuilderInstantiation.cs
- SpeakInfo.cs
- List.cs
- XmlQuerySequence.cs
- DesignerResources.cs
- Persist.cs
- FullTrustAssembliesSection.cs
- DragEvent.cs
- WebPartConnectionsCancelEventArgs.cs