Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- EntityContainer.cs
- DataGridViewComboBoxColumn.cs
- Claim.cs
- RawTextInputReport.cs
- MappingModelBuildProvider.cs
- SurrogateEncoder.cs
- BindingSourceDesigner.cs
- Menu.cs
- ResXResourceReader.cs
- PictureBox.cs
- EventMappingSettings.cs
- Win32PrintDialog.cs
- AuthenticationService.cs
- GridPattern.cs
- WizardStepBase.cs
- EdmMember.cs
- LoginName.cs
- ResourceDescriptionAttribute.cs
- EntityDataSourceContainerNameItem.cs
- ForeignKeyConstraint.cs
- DashStyle.cs
- SerialPort.cs
- WebControlAdapter.cs
- ConcurrentDictionary.cs
- RecordManager.cs
- SecurityTokenTypes.cs
- TreeNodeSelectionProcessor.cs
- SystemNetworkInterface.cs
- SystemWebCachingSectionGroup.cs
- KeyValueSerializer.cs
- QueryReaderSettings.cs
- SerializerProvider.cs
- ValidationManager.cs
- NonPrimarySelectionGlyph.cs
- Internal.cs
- LinkLabel.cs
- _LocalDataStoreMgr.cs
- XmlReader.cs
- Pen.cs
- LocalizabilityAttribute.cs
- DocumentOrderQuery.cs
- TagPrefixInfo.cs
- DESCryptoServiceProvider.cs
- CurrentChangingEventArgs.cs
- DrawingGroupDrawingContext.cs
- ReceiveActivityDesignerTheme.cs
- MutableAssemblyCacheEntry.cs
- DeflateStream.cs
- Clipboard.cs
- PopupEventArgs.cs
- Speller.cs
- RtfNavigator.cs
- EndEvent.cs
- ConfigXmlCDataSection.cs
- HandlerWithFactory.cs
- XmlHelper.cs
- EntityDataSourceDataSelectionPanel.cs
- TemplateControlBuildProvider.cs
- UpdateCommand.cs
- SymbolMethod.cs
- OletxTransactionHeader.cs
- AnnotationObservableCollection.cs
- LogArchiveSnapshot.cs
- OleDbError.cs
- QueueAccessMode.cs
- SHA256.cs
- DataControlCommands.cs
- ItemType.cs
- GridViewRowCollection.cs
- SoapObjectWriter.cs
- FixedDocumentSequencePaginator.cs
- DataBindingHandlerAttribute.cs
- HeaderedItemsControl.cs
- Win32Native.cs
- MappedMetaModel.cs
- BorderGapMaskConverter.cs
- FileAuthorizationModule.cs
- MonthCalendar.cs
- BinaryObjectReader.cs
- WmfPlaceableFileHeader.cs
- LinearGradientBrush.cs
- _AutoWebProxyScriptWrapper.cs
- RuleRef.cs
- XPathMessageFilterElement.cs
- DataGridViewTextBoxCell.cs
- SimpleHandlerFactory.cs
- PrivilegeNotHeldException.cs
- CryptoProvider.cs
- SamlAssertion.cs
- InfoCardListRequest.cs
- ActionMessageFilter.cs
- SqlError.cs
- StringCollection.cs
- Msec.cs
- HttpResponseInternalBase.cs
- ReflectTypeDescriptionProvider.cs
- PointConverter.cs
- CodeSubDirectory.cs
- PropertyTab.cs
- ComponentCodeDomSerializer.cs