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
- IxmlLineInfo.cs
- FixedSOMPageElement.cs
- RSACryptoServiceProvider.cs
- TreePrinter.cs
- MatrixCamera.cs
- LeaseManager.cs
- CollectionViewGroupInternal.cs
- securestring.cs
- DbConnectionClosed.cs
- BroadcastEventHelper.cs
- DataSourceXmlTextReader.cs
- Renderer.cs
- XPathExpr.cs
- TextCollapsingProperties.cs
- Number.cs
- ResourceWriter.cs
- XamlPointCollectionSerializer.cs
- NonBatchDirectoryCompiler.cs
- StringResourceManager.cs
- WebRequest.cs
- PathSegment.cs
- OdbcInfoMessageEvent.cs
- invalidudtexception.cs
- HebrewNumber.cs
- LoadedOrUnloadedOperation.cs
- DataGridCommandEventArgs.cs
- GroupedContextMenuStrip.cs
- SystemNetHelpers.cs
- LambdaReference.cs
- MailAddress.cs
- ManipulationCompletedEventArgs.cs
- Base64WriteStateInfo.cs
- Bind.cs
- WmpBitmapEncoder.cs
- X509Certificate2Collection.cs
- MobileUITypeEditor.cs
- CapabilitiesAssignment.cs
- Event.cs
- Adorner.cs
- DataGridViewLayoutData.cs
- ProjectionCamera.cs
- PhysicalOps.cs
- SqlDataSource.cs
- GeneralTransform2DTo3D.cs
- InstanceDescriptor.cs
- EventArgs.cs
- StrokeCollectionConverter.cs
- Attributes.cs
- ReadOnlyHierarchicalDataSourceView.cs
- SafeReversePInvokeHandle.cs
- CommonDialog.cs
- QuaternionAnimationUsingKeyFrames.cs
- ExtenderProviderService.cs
- ContainerParaClient.cs
- Tile.cs
- SecureStringHasher.cs
- _NetworkingPerfCounters.cs
- TempFiles.cs
- XmlSchemaComplexContent.cs
- GregorianCalendar.cs
- Header.cs
- ProjectionCamera.cs
- InstanceKeyNotReadyException.cs
- DataGridViewRowPostPaintEventArgs.cs
- MetaTableHelper.cs
- PeerCollaboration.cs
- WebControlsSection.cs
- BitmapEffectDrawingContextWalker.cs
- InternalBufferOverflowException.cs
- DataObjectFieldAttribute.cs
- PropertyKey.cs
- Module.cs
- PropertyTabAttribute.cs
- ContextDataSourceView.cs
- CodeCompileUnit.cs
- XamlReaderHelper.cs
- ParserContext.cs
- Table.cs
- Logging.cs
- ListControl.cs
- FtpWebResponse.cs
- SignatureConfirmations.cs
- Utils.cs
- ServiceModelSecurityTokenTypes.cs
- PerformanceCountersElement.cs
- TextEndOfSegment.cs
- ExpressionWriter.cs
- FloatUtil.cs
- ChangePasswordDesigner.cs
- SocketStream.cs
- HttpFileCollectionBase.cs
- InvalidEnumArgumentException.cs
- ProviderUtil.cs
- StackOverflowException.cs
- SafeReversePInvokeHandle.cs
- PathSegment.cs
- InvalidComObjectException.cs
- Win32.cs
- CollectionChange.cs
- WebPartConnectionCollection.cs