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
- DesignerView.cs
- RSAOAEPKeyExchangeFormatter.cs
- DataException.cs
- ZipArchive.cs
- RecordBuilder.cs
- MenuAdapter.cs
- HasCopySemanticsAttribute.cs
- Publisher.cs
- ToolStripArrowRenderEventArgs.cs
- BoundColumn.cs
- Table.cs
- MatchingStyle.cs
- GorillaCodec.cs
- Journaling.cs
- WebReferencesBuildProvider.cs
- DataGridViewComboBoxColumn.cs
- TableHeaderCell.cs
- EditorPartCollection.cs
- BatchParser.cs
- OdbcRowUpdatingEvent.cs
- ArcSegment.cs
- StatusBar.cs
- ItemMap.cs
- Color.cs
- MemberDomainMap.cs
- Pair.cs
- ProtocolsConfigurationEntry.cs
- LinearKeyFrames.cs
- JsonFormatReaderGenerator.cs
- SQLString.cs
- TypedTableBaseExtensions.cs
- SingleConverter.cs
- AuthenticationService.cs
- MimeMultiPart.cs
- Crc32.cs
- CallContext.cs
- WebReferencesBuildProvider.cs
- ConfigurationStrings.cs
- LicenseException.cs
- AttachedAnnotationChangedEventArgs.cs
- CustomWebEventKey.cs
- SelectionWordBreaker.cs
- SecureUICommand.cs
- Int64Animation.cs
- SqlClientMetaDataCollectionNames.cs
- COM2ComponentEditor.cs
- RequestTimeoutManager.cs
- ZipIOBlockManager.cs
- HorizontalAlignConverter.cs
- SortDescriptionCollection.cs
- TextCharacters.cs
- MediaTimeline.cs
- CharStorage.cs
- NetworkInformationException.cs
- BrushMappingModeValidation.cs
- ConfigurationSectionGroupCollection.cs
- ExpressionLexer.cs
- xmlNames.cs
- ConfigurationException.cs
- ContentType.cs
- ImportException.cs
- StyleXamlTreeBuilder.cs
- FileCodeGroup.cs
- WindowsUserNameSecurityTokenAuthenticator.cs
- ResourceDefaultValueAttribute.cs
- AppDomainCompilerProxy.cs
- LogFlushAsyncResult.cs
- XPathSelectionIterator.cs
- ParseHttpDate.cs
- ExceptQueryOperator.cs
- DataBindingExpressionBuilder.cs
- HandlerMappingMemo.cs
- FixedSOMTextRun.cs
- TableLayoutRowStyleCollection.cs
- ClientSettingsStore.cs
- Exceptions.cs
- TitleStyle.cs
- ProviderIncompatibleException.cs
- SessionPageStateSection.cs
- AffineTransform3D.cs
- PagesChangedEventArgs.cs
- ScriptReferenceBase.cs
- HtmlControlPersistable.cs
- VisualTreeHelper.cs
- Query.cs
- HorizontalAlignConverter.cs
- EFAssociationProvider.cs
- TrackingParameters.cs
- ConfigXmlCDataSection.cs
- PointAnimationUsingPath.cs
- JournalEntryListConverter.cs
- LineInfo.cs
- DataTablePropertyDescriptor.cs
- DesignTable.cs
- PolyLineSegment.cs
- HttpServerProtocol.cs
- CategoryAttribute.cs
- ToolStripRendererSwitcher.cs
- SerializationEventsCache.cs
- SessionIDManager.cs