Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- ConnectionPointCookie.cs
- WebPartAuthorizationEventArgs.cs
- TemplateManager.cs
- NGCSerializer.cs
- Keyboard.cs
- Socket.cs
- ApplicationDirectory.cs
- WFItemsToSpacerVisibility.cs
- XmlDataContract.cs
- WindowsFont.cs
- MergeEnumerator.cs
- ThemeDictionaryExtension.cs
- FontNamesConverter.cs
- GraphicsContext.cs
- ConfigurationErrorsException.cs
- Condition.cs
- FontEmbeddingManager.cs
- XPathDocumentNavigator.cs
- AliasedExpr.cs
- TextServicesManager.cs
- Win32Native.cs
- ArgumentException.cs
- RuntimeConfig.cs
- XmlUTF8TextWriter.cs
- DataAccessor.cs
- WebPartConnectionsCancelEventArgs.cs
- XmlDataSourceView.cs
- PersonalizationStateInfo.cs
- ManualResetEvent.cs
- PasswordPropertyTextAttribute.cs
- DragDrop.cs
- StateItem.cs
- EntityDataSource.cs
- StaticExtensionConverter.cs
- CustomPopupPlacement.cs
- ZipIOExtraFieldElement.cs
- FileSystemWatcher.cs
- Part.cs
- Speller.cs
- CustomLineCap.cs
- FormattedTextSymbols.cs
- LineServicesRun.cs
- Column.cs
- IndexedDataBuffer.cs
- FileSystemEventArgs.cs
- BaseConfigurationRecord.cs
- ResourcePermissionBase.cs
- TypeListConverter.cs
- PageAsyncTask.cs
- HttpCacheVary.cs
- ArgumentNullException.cs
- WpfKnownType.cs
- ColumnCollection.cs
- PathFigureCollectionValueSerializer.cs
- BasicViewGenerator.cs
- SiteMapNodeItem.cs
- ClientType.cs
- ToolStripDropDown.cs
- DataTablePropertyDescriptor.cs
- ProtectedConfigurationProviderCollection.cs
- Stopwatch.cs
- SwitchAttribute.cs
- PersistChildrenAttribute.cs
- GridViewUpdatedEventArgs.cs
- TableColumnCollectionInternal.cs
- ScriptingWebServicesSectionGroup.cs
- EmptyEnumerable.cs
- BitmapEncoder.cs
- WorkflowInstanceAbortedRecord.cs
- StickyNoteContentControl.cs
- AppDomain.cs
- ModelTreeManager.cs
- Range.cs
- GenerateScriptTypeAttribute.cs
- GridViewRowCollection.cs
- RotateTransform.cs
- UserMapPath.cs
- IteratorDescriptor.cs
- WebPartManagerDesigner.cs
- MenuRenderer.cs
- ExecutionContext.cs
- DesignBindingPropertyDescriptor.cs
- ChineseLunisolarCalendar.cs
- XslAst.cs
- InputLanguageSource.cs
- ButtonFieldBase.cs
- UserControlDesigner.cs
- ListBoxChrome.cs
- InputQueue.cs
- HMACRIPEMD160.cs
- DeclaredTypeElement.cs
- FreezableCollection.cs
- Rotation3D.cs
- ProcessStartInfo.cs
- OdbcEnvironment.cs
- XmlAttributeProperties.cs
- UnsafeNativeMethods.cs
- FrameworkContentElement.cs
- SqlFormatter.cs
- DesignerTransactionCloseEvent.cs