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
- StringFormat.cs
- RecordConverter.cs
- MouseActionConverter.cs
- ObjectStateFormatter.cs
- DispatcherFrame.cs
- StoryFragments.cs
- validationstate.cs
- HtmlInputReset.cs
- BamlResourceSerializer.cs
- ToolStripPanelRenderEventArgs.cs
- DateTimeOffset.cs
- EntityDataSourceState.cs
- XmlWhitespace.cs
- DataGridViewRowHeaderCell.cs
- ConfigurationElementCollection.cs
- Point4D.cs
- MetadataCacheItem.cs
- TransformCryptoHandle.cs
- HMACRIPEMD160.cs
- UriSection.cs
- StrongNamePublicKeyBlob.cs
- SendingRequestEventArgs.cs
- _AuthenticationState.cs
- RoleManagerSection.cs
- ServiceContractDetailViewControl.cs
- ComboBoxHelper.cs
- ResponseStream.cs
- ColorAnimationUsingKeyFrames.cs
- TextCompositionManager.cs
- PasswordTextContainer.cs
- WebPartHelpVerb.cs
- TrackingExtract.cs
- MaskInputRejectedEventArgs.cs
- SqlBulkCopy.cs
- MaskedTextBox.cs
- TouchesOverProperty.cs
- WebPartEditorApplyVerb.cs
- TransformCollection.cs
- ResourceDisplayNameAttribute.cs
- BaseConfigurationRecord.cs
- XmlUtil.cs
- CTreeGenerator.cs
- Axis.cs
- TextDecorationUnitValidation.cs
- MethodBody.cs
- ColorTransformHelper.cs
- UnauthorizedAccessException.cs
- UnmanagedMemoryStream.cs
- ObjectListDataBindEventArgs.cs
- MobileControlPersister.cs
- DebuggerAttributes.cs
- DebugController.cs
- EntityDataSourceEntityTypeFilterItem.cs
- PropertyContainer.cs
- EmptyArray.cs
- CheckBoxPopupAdapter.cs
- IndentedWriter.cs
- FileDialogCustomPlace.cs
- columnmapkeybuilder.cs
- ComponentEvent.cs
- TransformDescriptor.cs
- StaticFileHandler.cs
- ISFTagAndGuidCache.cs
- TeredoHelper.cs
- ControlPaint.cs
- FontInfo.cs
- ChineseLunisolarCalendar.cs
- PerformanceCounterPermission.cs
- Win32Exception.cs
- ChannelManager.cs
- CaseCqlBlock.cs
- CommandDevice.cs
- IISUnsafeMethods.cs
- Scene3D.cs
- CanExecuteRoutedEventArgs.cs
- TabletCollection.cs
- PerformanceCounterCategory.cs
- ValueQuery.cs
- CannotUnloadAppDomainException.cs
- ActivationService.cs
- ScriptManager.cs
- LineSegment.cs
- ButtonBase.cs
- SymmetricAlgorithm.cs
- ListViewGroupConverter.cs
- AdRotator.cs
- DateTimeOffsetConverter.cs
- TextParagraphCache.cs
- ZoneIdentityPermission.cs
- GlobalizationAssembly.cs
- AdornerHitTestResult.cs
- ToolStripItemCollection.cs
- Triangle.cs
- ImmComposition.cs
- SystemColors.cs
- StatusStrip.cs
- JoinCqlBlock.cs
- MessageLoggingFilterTraceRecord.cs
- ExeConfigurationFileMap.cs
- CrossContextChannel.cs