Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- unitconverter.cs
- FilterElement.cs
- ReadOnlyKeyedCollection.cs
- GridEntryCollection.cs
- LineGeometry.cs
- ListQueryResults.cs
- ThemeDirectoryCompiler.cs
- ScopeElement.cs
- MarshalByValueComponent.cs
- DataColumnPropertyDescriptor.cs
- RectAnimationClockResource.cs
- XmlSchemaSimpleTypeUnion.cs
- Schema.cs
- NotifyCollectionChangedEventArgs.cs
- MouseGestureValueSerializer.cs
- PagesSection.cs
- PeerObject.cs
- XmlAutoDetectWriter.cs
- ParameterCollection.cs
- SimpleType.cs
- ProfileEventArgs.cs
- ClientProxyGenerator.cs
- SEHException.cs
- AnnotationMap.cs
- OdbcCommandBuilder.cs
- Typeface.cs
- MemberListBinding.cs
- DataObjectAttribute.cs
- HttpCapabilitiesBase.cs
- CodeDOMProvider.cs
- ProviderUtil.cs
- PreservationFileWriter.cs
- Msec.cs
- DataGridViewSelectedRowCollection.cs
- RelationshipSet.cs
- _SecureChannel.cs
- XmlSignificantWhitespace.cs
- PreProcessInputEventArgs.cs
- DataRelation.cs
- VariantWrapper.cs
- XmlDataCollection.cs
- UserPreferenceChangingEventArgs.cs
- Events.cs
- SettingsContext.cs
- CompositeActivityTypeDescriptorProvider.cs
- SqlDataSourceEnumerator.cs
- SubtreeProcessor.cs
- DoubleAnimation.cs
- Comparer.cs
- NavigationExpr.cs
- WebPartConnectionCollection.cs
- BackStopAuthenticationModule.cs
- CapabilitiesPattern.cs
- InputProcessorProfiles.cs
- Part.cs
- messageonlyhwndwrapper.cs
- AutomationAttributeInfo.cs
- IOThreadTimer.cs
- ComPlusDiagnosticTraceRecords.cs
- TableHeaderCell.cs
- UserNamePasswordValidator.cs
- ResXBuildProvider.cs
- ThreadExceptionDialog.cs
- ComplexPropertyEntry.cs
- TTSEngineProxy.cs
- SQLResource.cs
- XmlSerializer.cs
- DeleteIndexBinder.cs
- CalendarAutomationPeer.cs
- FrugalMap.cs
- ListViewGroupConverter.cs
- TypefaceMetricsCache.cs
- TraceUtils.cs
- ViewgenGatekeeper.cs
- DataGridViewRowsRemovedEventArgs.cs
- RectConverter.cs
- RectangleConverter.cs
- DataGridViewCellValidatingEventArgs.cs
- ComponentEvent.cs
- WebService.cs
- ContentPlaceHolder.cs
- XmlNodeList.cs
- CustomErrorsSectionWrapper.cs
- SmtpMail.cs
- EFDataModelProvider.cs
- SqlOuterApplyReducer.cs
- HttpProfileGroupBase.cs
- InstanceCollisionException.cs
- SystemParameters.cs
- ExtendedPropertiesHandler.cs
- LinkedResource.cs
- InvalidOleVariantTypeException.cs
- MediaEntryAttribute.cs
- TdsParserStaticMethods.cs
- FileStream.cs
- WrapPanel.cs
- NotifyInputEventArgs.cs
- ContextBase.cs
- InputEventArgs.cs
- OutputCache.cs