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
- WorkflowStateRollbackService.cs
- TextFormatterContext.cs
- MediaContextNotificationWindow.cs
- XmlSchemaAttributeGroupRef.cs
- HMACSHA512.cs
- DataReaderContainer.cs
- WebPartZoneBase.cs
- BuilderPropertyEntry.cs
- ResourceSetExpression.cs
- ConfigurationSettings.cs
- IChannel.cs
- SizeChangedInfo.cs
- ImageCollectionCodeDomSerializer.cs
- invalidudtexception.cs
- InputReportEventArgs.cs
- DataObject.cs
- XmlAttributeCache.cs
- MonthChangedEventArgs.cs
- XmlAnyAttributeAttribute.cs
- GlyphRunDrawing.cs
- DNS.cs
- CompressEmulationStream.cs
- HttpListenerResponse.cs
- IisTraceWebEventProvider.cs
- PathFigureCollection.cs
- ClientOperationFormatterProvider.cs
- TypeConverterValueSerializer.cs
- HtmlImageAdapter.cs
- ScriptRegistrationManager.cs
- UIElement.cs
- SqlGenerator.cs
- Screen.cs
- Compress.cs
- ObjectPersistData.cs
- SizeAnimationClockResource.cs
- SchemaNamespaceManager.cs
- ConfigsHelper.cs
- TemplatedAdorner.cs
- AssemblyCacheEntry.cs
- CodeActivity.cs
- XMLSchema.cs
- QuaternionRotation3D.cs
- AdRotator.cs
- TemplateNameScope.cs
- StopStoryboard.cs
- HttpProfileBase.cs
- DbParameterHelper.cs
- PartitionResolver.cs
- _AutoWebProxyScriptEngine.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- GridViewHeaderRowPresenter.cs
- GotoExpression.cs
- Reference.cs
- ReadOnlyDictionary.cs
- DbMetaDataColumnNames.cs
- Wildcard.cs
- DocumentPageView.cs
- DataGridHeadersVisibilityToVisibilityConverter.cs
- OdbcDataAdapter.cs
- WasHttpModulesInstallComponent.cs
- SystemEvents.cs
- PointConverter.cs
- ProfessionalColors.cs
- PackageDigitalSignatureManager.cs
- WindowsTooltip.cs
- RegexCode.cs
- ReadOnlyDictionary.cs
- Command.cs
- ModuleBuilderData.cs
- TextBlock.cs
- FormViewRow.cs
- XsltContext.cs
- EntryWrittenEventArgs.cs
- DecoderFallbackWithFailureFlag.cs
- PaperSource.cs
- ActiveXContainer.cs
- UnionExpr.cs
- InvalidDataException.cs
- XmlnsDictionary.cs
- MetricEntry.cs
- LinkedList.cs
- ReliableInputConnection.cs
- DoubleUtil.cs
- ChangeBlockUndoRecord.cs
- ResourceProviderFactory.cs
- WizardStepBase.cs
- EdmError.cs
- ScriptManagerProxy.cs
- TextSelection.cs
- XmlCharCheckingWriter.cs
- FloaterParaClient.cs
- WinEventWrap.cs
- SqlXmlStorage.cs
- PolicyLevel.cs
- DebugInfoExpression.cs
- DynamicValidatorEventArgs.cs
- VoiceChangeEventArgs.cs
- NativeMethodsCLR.cs
- SystemIcmpV6Statistics.cs
- Animatable.cs