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
- processwaithandle.cs
- DependencyPropertyChangedEventArgs.cs
- StructuredTypeEmitter.cs
- AnimatedTypeHelpers.cs
- PictureBox.cs
- OracleNumber.cs
- EdmComplexTypeAttribute.cs
- FloatAverageAggregationOperator.cs
- CodeDOMProvider.cs
- ProgressBarRenderer.cs
- ConfigPathUtility.cs
- BitmapDecoder.cs
- AutomationIdentifier.cs
- CodeConstructor.cs
- MSAAWinEventWrap.cs
- ByteStreamMessageUtility.cs
- ServiceChannelManager.cs
- SafeNativeMethods.cs
- SwitchElementsCollection.cs
- SafeWaitHandle.cs
- NativeMethods.cs
- CollectionsUtil.cs
- ThicknessKeyFrameCollection.cs
- BaseEntityWrapper.cs
- TextTrailingWordEllipsis.cs
- XmlChildEnumerator.cs
- CodeEventReferenceExpression.cs
- UIPermission.cs
- OperationBehaviorAttribute.cs
- XmlnsCache.cs
- PersonalizationProviderCollection.cs
- TextDecorationUnitValidation.cs
- RadioButtonList.cs
- XmlSchemaElement.cs
- XsltException.cs
- ConfigurationHelpers.cs
- Transform3DGroup.cs
- ThemeDirectoryCompiler.cs
- XmlDataImplementation.cs
- DataGridViewComboBoxEditingControl.cs
- XmlSignatureProperties.cs
- Line.cs
- XmlNullResolver.cs
- HttpModuleActionCollection.cs
- NativeActivityFaultContext.cs
- HtmlControlPersistable.cs
- HostingEnvironmentException.cs
- ReaderContextStackData.cs
- OleDbConnectionInternal.cs
- GenericWebPart.cs
- ListViewItemCollectionEditor.cs
- SspiSafeHandles.cs
- CountAggregationOperator.cs
- CFStream.cs
- DrawingVisual.cs
- HtmlDocument.cs
- RSAPKCS1KeyExchangeFormatter.cs
- CalendarButtonAutomationPeer.cs
- AutomationPeer.cs
- PackageDocument.cs
- ItemsControlAutomationPeer.cs
- RSAOAEPKeyExchangeFormatter.cs
- Empty.cs
- Int32CollectionConverter.cs
- XPathParser.cs
- TransformedBitmap.cs
- ParallelTimeline.cs
- TemplateControlBuildProvider.cs
- DbExpressionRules.cs
- IconHelper.cs
- BooleanExpr.cs
- WebScriptMetadataMessage.cs
- ConnectionProviderAttribute.cs
- ObjectConverter.cs
- Authorization.cs
- AmbientLight.cs
- Schema.cs
- EdmConstants.cs
- AuthenticatingEventArgs.cs
- NonceCache.cs
- ReaderWriterLock.cs
- OperationPickerDialog.designer.cs
- SiblingIterators.cs
- SpnegoTokenAuthenticator.cs
- ProviderException.cs
- FormViewCommandEventArgs.cs
- Journaling.cs
- BitmapPalettes.cs
- PlatformCulture.cs
- FileUtil.cs
- EventRouteFactory.cs
- SystemIPGlobalStatistics.cs
- GlyphRunDrawing.cs
- versioninfo.cs
- HealthMonitoringSection.cs
- RegexStringValidatorAttribute.cs
- SecurityUtils.cs
- StandardToolWindows.cs
- CollectionMarkupSerializer.cs
- CallbackException.cs