Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- Menu.cs
- TransformedBitmap.cs
- ConfigurationSchemaErrors.cs
- RankException.cs
- TailCallAnalyzer.cs
- InvalidEnumArgumentException.cs
- InputMethod.cs
- XmlNamespaceManager.cs
- ElementNotEnabledException.cs
- RadioButtonFlatAdapter.cs
- XmlSchemaInfo.cs
- CustomAttributeFormatException.cs
- DeferredReference.cs
- CodeExporter.cs
- SpellerStatusTable.cs
- SmtpLoginAuthenticationModule.cs
- ConstNode.cs
- FocusWithinProperty.cs
- Odbc32.cs
- ProxyAttribute.cs
- SamlDelegatingWriter.cs
- HttpProxyTransportBindingElement.cs
- PageVisual.cs
- DescendantOverDescendantQuery.cs
- DataObjectMethodAttribute.cs
- PrinterResolution.cs
- KeysConverter.cs
- XmlElementCollection.cs
- RootProfilePropertySettingsCollection.cs
- MethodCallTranslator.cs
- FtpRequestCacheValidator.cs
- TextEditorContextMenu.cs
- ExcCanonicalXml.cs
- StreamInfo.cs
- Route.cs
- XmlSubtreeReader.cs
- Parallel.cs
- ListComponentEditorPage.cs
- HebrewCalendar.cs
- ListViewEditEventArgs.cs
- CodeDelegateCreateExpression.cs
- COM2PictureConverter.cs
- FlatButtonAppearance.cs
- ListCollectionView.cs
- CellPartitioner.cs
- SchemaImporter.cs
- _SafeNetHandles.cs
- SourceLineInfo.cs
- RegexCharClass.cs
- HwndSubclass.cs
- BitVector32.cs
- SecurityDocument.cs
- DeferredReference.cs
- ZipIORawDataFileBlock.cs
- FontInfo.cs
- AnonymousIdentificationModule.cs
- Misc.cs
- LinkClickEvent.cs
- RealizationDrawingContextWalker.cs
- RootBuilder.cs
- Column.cs
- EmptyElement.cs
- CapabilitiesSection.cs
- ToolboxItemFilterAttribute.cs
- RoamingStoreFileUtility.cs
- EncoderReplacementFallback.cs
- AutoGeneratedFieldProperties.cs
- ChannelSinkStacks.cs
- ImageCreator.cs
- ResourcesBuildProvider.cs
- ManagedWndProcTracker.cs
- XmlUnspecifiedAttribute.cs
- DesignerDataSchemaClass.cs
- CodePageEncoding.cs
- InputManager.cs
- EntityDesignerBuildProvider.cs
- AsyncCodeActivity.cs
- IPGlobalProperties.cs
- UrlPath.cs
- PermissionSet.cs
- BaseTemplatedMobileComponentEditor.cs
- XmlSchemaCompilationSettings.cs
- RuntimeCompatibilityAttribute.cs
- RoleManagerSection.cs
- FieldNameLookup.cs
- FontFamilyIdentifier.cs
- SliderAutomationPeer.cs
- ToolStripSplitButton.cs
- SizeAnimation.cs
- DesignerVerb.cs
- dtdvalidator.cs
- linebase.cs
- GrammarBuilderWildcard.cs
- TemplateManager.cs
- TextEditorTyping.cs
- OrderPreservingPipeliningSpoolingTask.cs
- PlanCompilerUtil.cs
- InfoCardRSAOAEPKeyExchangeDeformatter.cs
- XpsFilter.cs
- SupportingTokenSpecification.cs