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
- InstanceDataCollection.cs
- _TLSstream.cs
- TableLayoutPanel.cs
- CompoundFileIOPermission.cs
- CodeSpit.cs
- ETagAttribute.cs
- SingleTagSectionHandler.cs
- CommandValueSerializer.cs
- EntityDataSourceContextDisposingEventArgs.cs
- UnmanagedMemoryStream.cs
- DataGridViewLayoutData.cs
- ProjectionPathBuilder.cs
- UInt32.cs
- MethodSet.cs
- TransformValueSerializer.cs
- QuadraticBezierSegment.cs
- ActivityBindForm.Designer.cs
- ResourceProviderFactory.cs
- StateManagedCollection.cs
- SQLInt32Storage.cs
- DecimalConverter.cs
- RootBrowserWindow.cs
- NullableLongAverageAggregationOperator.cs
- StopStoryboard.cs
- TextServicesLoader.cs
- RemoteX509Token.cs
- DropShadowEffect.cs
- RuleAttributes.cs
- RankException.cs
- ProcessModuleCollection.cs
- thaishape.cs
- MDIClient.cs
- SmiTypedGetterSetter.cs
- MailWriter.cs
- ComponentChangedEvent.cs
- BaseComponentEditor.cs
- GraphicsPath.cs
- RuntimeEnvironment.cs
- ping.cs
- DockProviderWrapper.cs
- ContextMenu.cs
- sqlmetadatafactory.cs
- Message.cs
- TextEncodedRawTextWriter.cs
- SettingsProviderCollection.cs
- SingleTagSectionHandler.cs
- _ShellExpression.cs
- CompensationHandlingFilter.cs
- ProtocolImporter.cs
- MouseOverProperty.cs
- TextLineBreak.cs
- smtpconnection.cs
- WebDescriptionAttribute.cs
- ActivityCodeGenerator.cs
- MonthChangedEventArgs.cs
- FormViewAutoFormat.cs
- StringAnimationUsingKeyFrames.cs
- DrawListViewItemEventArgs.cs
- SmtpAuthenticationManager.cs
- DataGridState.cs
- ChtmlFormAdapter.cs
- Repeater.cs
- GlobalEventManager.cs
- HttpModulesSection.cs
- Size.cs
- storepermission.cs
- NamespaceCollection.cs
- XslAst.cs
- Deflater.cs
- TypefaceMetricsCache.cs
- MobileErrorInfo.cs
- MobileControlPersister.cs
- PropertyIdentifier.cs
- DataGridColumnFloatingHeader.cs
- ServiceOperationParameter.cs
- webproxy.cs
- CheckBoxRenderer.cs
- DbParameterCollectionHelper.cs
- HtmlGenericControl.cs
- OleDbWrapper.cs
- sqlinternaltransaction.cs
- PeerApplication.cs
- AutomationPropertyChangedEventArgs.cs
- CaseInsensitiveHashCodeProvider.cs
- CultureTableRecord.cs
- RowCache.cs
- DispatcherObject.cs
- HtmlWindow.cs
- Storyboard.cs
- ListBoxAutomationPeer.cs
- SqlDataSourceQueryEditor.cs
- ImageClickEventArgs.cs
- COM2EnumConverter.cs
- ListMarkerSourceInfo.cs
- RenderData.cs
- ListItemCollection.cs
- Binding.cs
- EditorBrowsableAttribute.cs
- TransformGroup.cs
- DataGridViewColumn.cs