Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DLinq / Dlinq / SqlClient / Common / SqlServer2KCompatibilityCheck.cs / 1305376 / 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
- HTMLTagNameToTypeMapper.cs
- MailWriter.cs
- Simplifier.cs
- MediaEntryAttribute.cs
- MissingMemberException.cs
- ValueUnavailableException.cs
- StorageMappingFragment.cs
- InstanceDescriptor.cs
- TraceHandler.cs
- BinaryUtilClasses.cs
- FixedSOMLineCollection.cs
- Assembly.cs
- RSAOAEPKeyExchangeFormatter.cs
- DbConnectionOptions.cs
- HttpModuleActionCollection.cs
- AssociationEndMember.cs
- TypeUsage.cs
- ProgressChangedEventArgs.cs
- PartialCachingControl.cs
- SecurityDescriptor.cs
- AssemblyCacheEntry.cs
- ScriptingWebServicesSectionGroup.cs
- TableColumn.cs
- WindowsUserNameSecurityTokenAuthenticator.cs
- ListManagerBindingsCollection.cs
- CellRelation.cs
- ColumnBinding.cs
- TypeReference.cs
- MissingSatelliteAssemblyException.cs
- PeerApplication.cs
- IntSecurity.cs
- TextViewElement.cs
- ConfigurationValidatorBase.cs
- RegistrySecurity.cs
- WorkflowTerminatedException.cs
- StyleXamlParser.cs
- PartialCachingAttribute.cs
- WindowsAltTab.cs
- TextFormattingConverter.cs
- OrthographicCamera.cs
- EntityReference.cs
- WebPartCatalogAddVerb.cs
- DesignerForm.cs
- Point4D.cs
- XmlILCommand.cs
- IncrementalReadDecoders.cs
- DataContractSerializerMessageContractImporter.cs
- ConnectionStringsExpressionBuilder.cs
- TextSearch.cs
- XmlDigitalSignatureProcessor.cs
- ManipulationStartedEventArgs.cs
- TextWriterTraceListener.cs
- TreeNodeCollection.cs
- EventHandlerList.cs
- SessionEndingEventArgs.cs
- BezierSegment.cs
- SqlDesignerDataSourceView.cs
- WebPartDisplayModeCollection.cs
- FormDocumentDesigner.cs
- TaiwanLunisolarCalendar.cs
- WindowsRegion.cs
- DockingAttribute.cs
- NullableFloatAverageAggregationOperator.cs
- XmlAttributeCollection.cs
- StringBlob.cs
- SHA1Cng.cs
- MatrixCamera.cs
- WebControlAdapter.cs
- AlignmentYValidation.cs
- PrintPreviewControl.cs
- ComponentResourceKey.cs
- RegexWriter.cs
- EtwProvider.cs
- KeySpline.cs
- UnionExpr.cs
- GlobalAllocSafeHandle.cs
- ToolStripDropDownClosedEventArgs.cs
- OdbcStatementHandle.cs
- WindowsListViewItem.cs
- DataSourceXmlTextReader.cs
- ClientTarget.cs
- DebugInfoExpression.cs
- RtfNavigator.cs
- InputLanguageSource.cs
- DatatypeImplementation.cs
- ResourcePart.cs
- XmlNodeComparer.cs
- DotExpr.cs
- DictionaryBase.cs
- MsmqIntegrationAppDomainProtocolHandler.cs
- XsltException.cs
- GenericsInstances.cs
- UpdateManifestForBrowserApplication.cs
- OpCopier.cs
- SpellerStatusTable.cs
- ReadOnlyPropertyMetadata.cs
- MailAddressCollection.cs
- externdll.cs
- LocalizationParserHooks.cs
- DateTime.cs