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
- AuthorizationRuleCollection.cs
- Point3DAnimationBase.cs
- CngKey.cs
- TakeQueryOptionExpression.cs
- ToolStripSettings.cs
- FileInfo.cs
- KeyPressEvent.cs
- SQLCharsStorage.cs
- DataGridViewBand.cs
- TdsParameterSetter.cs
- ApplicationInterop.cs
- ProfileInfo.cs
- TextServicesDisplayAttribute.cs
- DictionarySectionHandler.cs
- MouseGesture.cs
- ValueOfAction.cs
- ISFClipboardData.cs
- ColorInterpolationModeValidation.cs
- SafeHandle.cs
- WebConfigurationFileMap.cs
- _FtpDataStream.cs
- PropertyManager.cs
- localization.cs
- LineUtil.cs
- ToolStripItemClickedEventArgs.cs
- AuthenticationService.cs
- InheritedPropertyDescriptor.cs
- DefaultMemberAttribute.cs
- PixelFormats.cs
- DataPagerFieldCollection.cs
- altserialization.cs
- _Events.cs
- MultiPageTextView.cs
- DragDrop.cs
- MultitargetUtil.cs
- NavigationCommands.cs
- DataRowComparer.cs
- EncodingTable.cs
- NamespaceEmitter.cs
- SmtpClient.cs
- ExtenderProvidedPropertyAttribute.cs
- DockingAttribute.cs
- Int64AnimationUsingKeyFrames.cs
- CompiledIdentityConstraint.cs
- NotifyInputEventArgs.cs
- DateTimeFormatInfo.cs
- ImageList.cs
- TransformGroup.cs
- AsyncSerializedWorker.cs
- BaseEntityWrapper.cs
- XmlSchemaSimpleTypeList.cs
- ClientSponsor.cs
- PointCollectionConverter.cs
- FamilyTypeface.cs
- TabItemAutomationPeer.cs
- CloseCollectionAsyncResult.cs
- SchemaImporterExtensionElementCollection.cs
- CellParagraph.cs
- CssStyleCollection.cs
- ValidationErrorCollection.cs
- MetadataWorkspace.cs
- Keywords.cs
- BindingSourceDesigner.cs
- NameValueCache.cs
- ImageAnimator.cs
- Stacktrace.cs
- UpdateCommand.cs
- SymDocumentType.cs
- MsmqOutputChannel.cs
- DispatchWrapper.cs
- DataServiceRequestOfT.cs
- SchemaDeclBase.cs
- HttpDictionary.cs
- CodeTypeParameter.cs
- BoundPropertyEntry.cs
- ListViewCommandEventArgs.cs
- SpinWait.cs
- BulletedListEventArgs.cs
- SchemaTypeEmitter.cs
- TextHintingModeValidation.cs
- Border.cs
- ConcurrentBag.cs
- ResourceDescriptionAttribute.cs
- SoapIncludeAttribute.cs
- MarkedHighlightComponent.cs
- ToolboxItem.cs
- HttpPostedFile.cs
- ColumnMapVisitor.cs
- XpsSerializationException.cs
- ForeignConstraint.cs
- FixedLineResult.cs
- CheckableControlBaseAdapter.cs
- AssemblyBuilderData.cs
- DataGridViewColumnHeaderCell.cs
- WrappedOptions.cs
- ResXFileRef.cs
- HierarchicalDataTemplate.cs
- FormsAuthenticationModule.cs
- PerfService.cs
- AppDomainUnloadedException.cs