Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / ndp / fx / src / DLinq / Dlinq / SqlClient / Common / SqlServer2KCompatibilityCheck.cs / 1 / SqlServer2KCompatibilityCheck.cs
using System; using System.Collections.ObjectModel; using System.Text; namespace System.Data.Linq.SqlClient { ////// Methods for checking whethe a query was compatible with the /// server it will be sent to. /// static internal class SqlServerCompatibilityCheck { ////// Private visitor class checks each node for compatibility annotations. /// private class Visitor : SqlVisitor { private SqlProvider.ProviderMode provider; internal SqlNodeAnnotations annotations; internal Visitor(SqlProvider.ProviderMode provider) { this.provider = provider; } ////// The reasons why this query is not 2K compatible. /// internal Collectionreasons = new Collection (); internal override SqlNode Visit(SqlNode node) { if (annotations.NodeIsAnnotated(node)) { foreach (SqlNodeAnnotation annotation in annotations.Get(node)) { SqlServerCompatibilityAnnotation ssca = annotation as SqlServerCompatibilityAnnotation; if (ssca != null && ssca.AppliesTo(provider)) { reasons.Add(annotation.Message); } } } return base.Visit(node); } } /// /// Checks whether the given node is supported on the given server. /// internal static void ThrowIfUnsupported(SqlNode node, SqlNodeAnnotations annotations, SqlProvider.ProviderMode provider) { // Check to see whether there's at least one SqlServerCompatibilityAnnotation. if (annotations.HasAnnotationType(typeof(SqlServerCompatibilityAnnotation))) { Visitor visitor = new Visitor(provider); visitor.annotations = annotations; visitor.Visit(node); // If any messages were recorded, then throw an exception. if (visitor.reasons.Count > 0) { throw Error.ExpressionNotSupportedForSqlServerVersion(visitor.reasons); } } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. using System; using System.Collections.ObjectModel; using System.Text; namespace System.Data.Linq.SqlClient { ////// Methods for checking whethe a query was compatible with the /// server it will be sent to. /// static internal class SqlServerCompatibilityCheck { ////// Private visitor class checks each node for compatibility annotations. /// private class Visitor : SqlVisitor { private SqlProvider.ProviderMode provider; internal SqlNodeAnnotations annotations; internal Visitor(SqlProvider.ProviderMode provider) { this.provider = provider; } ////// The reasons why this query is not 2K compatible. /// internal Collectionreasons = new Collection (); internal override SqlNode Visit(SqlNode node) { if (annotations.NodeIsAnnotated(node)) { foreach (SqlNodeAnnotation annotation in annotations.Get(node)) { SqlServerCompatibilityAnnotation ssca = annotation as SqlServerCompatibilityAnnotation; if (ssca != null && ssca.AppliesTo(provider)) { reasons.Add(annotation.Message); } } } return base.Visit(node); } } /// /// Checks whether the given node is supported on the given server. /// internal static void ThrowIfUnsupported(SqlNode node, SqlNodeAnnotations annotations, SqlProvider.ProviderMode provider) { // Check to see whether there's at least one SqlServerCompatibilityAnnotation. if (annotations.HasAnnotationType(typeof(SqlServerCompatibilityAnnotation))) { Visitor visitor = new Visitor(provider); visitor.annotations = annotations; visitor.Visit(node); // If any messages were recorded, then throw an exception. if (visitor.reasons.Count > 0) { throw Error.ExpressionNotSupportedForSqlServerVersion(visitor.reasons); } } } } } // 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
- SessionIDManager.cs
- BigInt.cs
- Base64Decoder.cs
- TypeExtensionSerializer.cs
- PictureBox.cs
- DBSchemaTable.cs
- GlyphRunDrawing.cs
- BitmapCodecInfo.cs
- ContainerSelectorBehavior.cs
- CounterSample.cs
- HttpWriter.cs
- Point3DKeyFrameCollection.cs
- DataColumnCollection.cs
- ReturnEventArgs.cs
- DecoderBestFitFallback.cs
- CapacityStreamGeometryContext.cs
- MenuItemCollection.cs
- TextElement.cs
- FormViewModeEventArgs.cs
- Splitter.cs
- SolidColorBrush.cs
- CompatibleComparer.cs
- NativeMethodsCLR.cs
- SQLChars.cs
- WebAdminConfigurationHelper.cs
- SystemWebCachingSectionGroup.cs
- RoleGroup.cs
- ReadOnlyPermissionSet.cs
- SafeEventLogWriteHandle.cs
- ToolZone.cs
- XPathQilFactory.cs
- Schema.cs
- SerializableAttribute.cs
- Pens.cs
- ColumnHeader.cs
- QuaternionAnimationUsingKeyFrames.cs
- DynamicQueryableWrapper.cs
- BitmapEffectvisualstate.cs
- MaterialGroup.cs
- DataGridClipboardCellContent.cs
- ReceiveCompletedEventArgs.cs
- DbgCompiler.cs
- GlobalAllocSafeHandle.cs
- EpmTargetTree.cs
- NumberSubstitution.cs
- SchemaHelper.cs
- BamlReader.cs
- ToolStripArrowRenderEventArgs.cs
- EncoderExceptionFallback.cs
- SupportsEventValidationAttribute.cs
- _UriSyntax.cs
- QueryBranchOp.cs
- SettingsBindableAttribute.cs
- WindowsUserNameSecurityTokenAuthenticator.cs
- SqlConnection.cs
- _NegoStream.cs
- ControlUtil.cs
- LockedBorderGlyph.cs
- SQLDoubleStorage.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- SqlDependency.cs
- DatagridviewDisplayedBandsData.cs
- IntSecurity.cs
- ToolCreatedEventArgs.cs
- XmlSchemaSubstitutionGroup.cs
- printdlgexmarshaler.cs
- DynamicDataManager.cs
- LinqDataSourceView.cs
- AgileSafeNativeMemoryHandle.cs
- ReferenceEqualityComparer.cs
- DynamicControlParameter.cs
- XmlChoiceIdentifierAttribute.cs
- ResourceProviderFactory.cs
- DoubleUtil.cs
- ChannelPool.cs
- activationcontext.cs
- ScriptManager.cs
- StringUtil.cs
- GridViewColumnHeaderAutomationPeer.cs
- CodeBlockBuilder.cs
- MonitorWrapper.cs
- CompareValidator.cs
- FactoryGenerator.cs
- QilLiteral.cs
- QueryableDataSourceHelper.cs
- _NestedMultipleAsyncResult.cs
- ScrollChrome.cs
- SerializationAttributes.cs
- _CommandStream.cs
- HandleInitializationContext.cs
- DiagnosticTraceSource.cs
- ProjectionPathBuilder.cs
- PEFileReader.cs
- XsdValidatingReader.cs
- DocumentSchemaValidator.cs
- CodeGeneratorOptions.cs
- ArgumentOutOfRangeException.cs
- FileDataSource.cs
- DataGridViewBindingCompleteEventArgs.cs
- XsltConvert.cs