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
- Pts.cs
- DateTimeOffsetAdapter.cs
- View.cs
- ResourceReferenceKeyNotFoundException.cs
- SoapSchemaExporter.cs
- HttpCookie.cs
- XmlSchemaInclude.cs
- EtwTrace.cs
- SiteMap.cs
- Pen.cs
- TreeNodeStyle.cs
- DBAsyncResult.cs
- SecurityPolicyVersion.cs
- PartialCachingControl.cs
- OrderedDictionary.cs
- CompiledAction.cs
- Visual3DCollection.cs
- GlobalEventManager.cs
- CodeLinePragma.cs
- ConsumerConnectionPointCollection.cs
- NotFiniteNumberException.cs
- PackWebRequest.cs
- COM2TypeInfoProcessor.cs
- PreservationFileWriter.cs
- StrongNameKeyPair.cs
- TreeBuilderXamlTranslator.cs
- DoubleCollectionConverter.cs
- WebPartRestoreVerb.cs
- XmlSchemaException.cs
- ImageCodecInfo.cs
- UniqueID.cs
- SymmetricAlgorithm.cs
- Facet.cs
- RightsManagementEncryptedStream.cs
- XmlTextAttribute.cs
- Utils.cs
- ResourcePermissionBase.cs
- RootProfilePropertySettingsCollection.cs
- StrongName.cs
- TdsParserSessionPool.cs
- NewItemsContextMenuStrip.cs
- DocumentEventArgs.cs
- HttpContext.cs
- BaseTemplateBuildProvider.cs
- WpfKnownMemberInvoker.cs
- IsolatedStorageFilePermission.cs
- Configuration.cs
- BackgroundWorker.cs
- CSharpCodeProvider.cs
- BinHexDecoder.cs
- ConfigXmlElement.cs
- ExceptionCollection.cs
- SelectorItemAutomationPeer.cs
- XmlSchemaComplexContentRestriction.cs
- HttpResponseHeader.cs
- WindowsFont.cs
- SignatureSummaryDialog.cs
- MarkupExtensionParser.cs
- DiagnosticsConfigurationHandler.cs
- COM2DataTypeToManagedDataTypeConverter.cs
- HttpRuntime.cs
- UniqueIdentifierService.cs
- RelationshipDetailsCollection.cs
- WebCategoryAttribute.cs
- TableItemPatternIdentifiers.cs
- SymDocumentType.cs
- AnonymousIdentificationSection.cs
- SurrogateSelector.cs
- SqlFactory.cs
- AuthorizationRuleCollection.cs
- NotifyIcon.cs
- ItemList.cs
- MetadataSource.cs
- diagnosticsswitches.cs
- DefaultCommandExtensionCallback.cs
- VirtualPathProvider.cs
- GeometryModel3D.cs
- ApplicationFileCodeDomTreeGenerator.cs
- SafeUserTokenHandle.cs
- WindowsPen.cs
- DependencyObjectProvider.cs
- ZipIOExtraField.cs
- TdsParserSessionPool.cs
- ProvideValueServiceProvider.cs
- ScriptServiceAttribute.cs
- ProfilePropertySettings.cs
- FirstQueryOperator.cs
- baseaxisquery.cs
- SettingsPropertyValue.cs
- HttpServerUtilityWrapper.cs
- DataGridCommandEventArgs.cs
- RegisterResponseInfo.cs
- Calendar.cs
- AvTrace.cs
- InputScope.cs
- StructuralType.cs
- DataGridDetailsPresenter.cs
- Enum.cs
- SafeFileHandle.cs
- ExtensionFile.cs