Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / ndp / fx / src / DLinq / Dlinq / SqlClient / Query / SqlTopReducer.cs / 1 / SqlTopReducer.cs
using System; using System.Collections.Generic; using System.Linq.Expressions; using System.Reflection; using System.Data.Linq; using System.Data.Linq.Provider; using System.Linq; namespace System.Data.Linq.SqlClient { internal class SqlTopReducer { internal static SqlNode Reduce(SqlNode node, SqlNodeAnnotations annotations, SqlFactory sql) { return new Visitor(annotations, sql).Visit(node); } class Visitor : SqlVisitor { SqlNodeAnnotations annotations; SqlFactory sql; internal Visitor(SqlNodeAnnotations annotations, SqlFactory sql) { this.annotations = annotations; this.sql = sql; } internal override SqlSelect VisitSelect(SqlSelect select) { base.VisitSelect(select); if (select.Top != null) { if (select.Top.NodeType == SqlNodeType.Value) { SqlValue val = (SqlValue)select.Top; // convert to literal value for SQL2K compatibility if (val.IsClientSpecified) { select.Top = sql.Value(val.ClrType, val.SqlType, val.Value, false, val.SourceExpression); } } else { // cannot be converted to literal value. note that this select is not SQL2K compatible this.annotations.Add(select.Top, new SqlServerCompatibilityAnnotation(Strings.SourceExpressionAnnotation(select.Top.SourceExpression), SqlProvider.ProviderMode.Sql2000)); } } return select; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. using System; using System.Collections.Generic; using System.Linq.Expressions; using System.Reflection; using System.Data.Linq; using System.Data.Linq.Provider; using System.Linq; namespace System.Data.Linq.SqlClient { internal class SqlTopReducer { internal static SqlNode Reduce(SqlNode node, SqlNodeAnnotations annotations, SqlFactory sql) { return new Visitor(annotations, sql).Visit(node); } class Visitor : SqlVisitor { SqlNodeAnnotations annotations; SqlFactory sql; internal Visitor(SqlNodeAnnotations annotations, SqlFactory sql) { this.annotations = annotations; this.sql = sql; } internal override SqlSelect VisitSelect(SqlSelect select) { base.VisitSelect(select); if (select.Top != null) { if (select.Top.NodeType == SqlNodeType.Value) { SqlValue val = (SqlValue)select.Top; // convert to literal value for SQL2K compatibility if (val.IsClientSpecified) { select.Top = sql.Value(val.ClrType, val.SqlType, val.Value, false, val.SourceExpression); } } else { // cannot be converted to literal value. note that this select is not SQL2K compatible this.annotations.Add(select.Top, new SqlServerCompatibilityAnnotation(Strings.SourceExpressionAnnotation(select.Top.SourceExpression), SqlProvider.ProviderMode.Sql2000)); } } return select; } } } } // 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
- ActivityPreviewDesigner.cs
- BindingExpression.cs
- DotExpr.cs
- SelfIssuedAuthProofToken.cs
- ObjectViewListener.cs
- KeyFrames.cs
- Set.cs
- ListControl.cs
- ZipIOExtraField.cs
- HttpInputStream.cs
- ExtensionElement.cs
- SoapSchemaMember.cs
- SafeBitVector32.cs
- KeyValuePairs.cs
- UserControlBuildProvider.cs
- WmlCalendarAdapter.cs
- Context.cs
- ClientSettingsProvider.cs
- TextEndOfParagraph.cs
- XmlSchemaInfo.cs
- PageStatePersister.cs
- EncoderNLS.cs
- DesignerGenericWebPart.cs
- DSASignatureDeformatter.cs
- KeyNotFoundException.cs
- RightsManagementEncryptionTransform.cs
- ProfileSettingsCollection.cs
- ManagedFilter.cs
- PerSessionInstanceContextProvider.cs
- CompensatableTransactionScopeActivityDesigner.cs
- WmlPanelAdapter.cs
- MemberExpressionHelper.cs
- XPathCompileException.cs
- DropShadowBitmapEffect.cs
- WebUtil.cs
- LocalizationComments.cs
- XamlFilter.cs
- FormsAuthenticationTicket.cs
- ApplicationSecurityInfo.cs
- BaseTemplateCodeDomTreeGenerator.cs
- TextServicesDisplayAttributePropertyRanges.cs
- SchemaDeclBase.cs
- FixedTextBuilder.cs
- UseLicense.cs
- PageThemeCodeDomTreeGenerator.cs
- EventSinkActivity.cs
- AsnEncodedData.cs
- PropertyDescriptor.cs
- HwndSourceParameters.cs
- ContractInstanceProvider.cs
- ACL.cs
- UnmanagedMemoryStreamWrapper.cs
- DataGridViewImageCell.cs
- DesigntimeLicenseContextSerializer.cs
- AssociationTypeEmitter.cs
- GenericRootAutomationPeer.cs
- SmiSettersStream.cs
- serverconfig.cs
- DataGridPageChangedEventArgs.cs
- Point4D.cs
- FixedPageAutomationPeer.cs
- BinaryParser.cs
- Parser.cs
- FileInfo.cs
- GeneratedCodeAttribute.cs
- IImplicitResourceProvider.cs
- SqlDataSourceCommandEventArgs.cs
- xmlsaver.cs
- Table.cs
- RtfToken.cs
- FixedNode.cs
- PasswordRecovery.cs
- Matrix.cs
- BaseProcessProtocolHandler.cs
- XmlNode.cs
- UnsafePeerToPeerMethods.cs
- FamilyMap.cs
- CopyNodeSetAction.cs
- ToolboxComponentsCreatingEventArgs.cs
- WebPartVerbsEventArgs.cs
- TreeWalkHelper.cs
- SessionEndingEventArgs.cs
- SiteMap.cs
- DirectionalAction.cs
- Fonts.cs
- FreeFormDesigner.cs
- SmiSettersStream.cs
- StaticFileHandler.cs
- ConfigurationConverterBase.cs
- CapabilitiesAssignment.cs
- SQLDateTime.cs
- Page.cs
- Animatable.cs
- Predicate.cs
- DbReferenceCollection.cs
- GridItemPattern.cs
- PointLightBase.cs
- CompressionTransform.cs
- CodeAttributeDeclarationCollection.cs
- JsonDataContract.cs