Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- TrustSection.cs
- dataprotectionpermission.cs
- Cursors.cs
- BuildProvider.cs
- BufferedStream.cs
- Rotation3D.cs
- IntersectQueryOperator.cs
- RoleService.cs
- CodeNamespaceCollection.cs
- DisplayInformation.cs
- TargetException.cs
- EntityDataSourceWizardForm.cs
- HttpResponseHeader.cs
- BaseProcessor.cs
- PreApplicationStartMethodAttribute.cs
- ConfigXmlText.cs
- XmlObjectSerializerContext.cs
- FilterQuery.cs
- BStrWrapper.cs
- NumericPagerField.cs
- ObjectListTitleAttribute.cs
- MDIWindowDialog.cs
- SelectedGridItemChangedEvent.cs
- DispatchChannelSink.cs
- WmlImageAdapter.cs
- SQLDateTimeStorage.cs
- FixedPageProcessor.cs
- HTMLTagNameToTypeMapper.cs
- SafeFileMappingHandle.cs
- ScriptingProfileServiceSection.cs
- Journal.cs
- DummyDataSource.cs
- Expander.cs
- SmtpCommands.cs
- ResourceManager.cs
- CodeSnippetCompileUnit.cs
- CodeDomLoader.cs
- BulletedList.cs
- RowUpdatingEventArgs.cs
- CallInfo.cs
- SqlDataSourceQuery.cs
- GeneralTransform3D.cs
- WmlFormAdapter.cs
- Camera.cs
- PeerTransportListenAddressConverter.cs
- RecipientIdentity.cs
- EntityDataSourceSelectedEventArgs.cs
- Transform3DGroup.cs
- FormViewDeletedEventArgs.cs
- FeatureSupport.cs
- XslCompiledTransform.cs
- FixedSOMSemanticBox.cs
- EnlistmentState.cs
- AdRotatorDesigner.cs
- DataGridViewColumnHeaderCell.cs
- DatagramAdapter.cs
- Command.cs
- HelpHtmlBuilder.cs
- ActionItem.cs
- HideDisabledControlAdapter.cs
- SiteMapSection.cs
- IERequestCache.cs
- RequestResponse.cs
- MulticastDelegate.cs
- SessionSwitchEventArgs.cs
- GPRECT.cs
- HandlerElement.cs
- MatchAllMessageFilter.cs
- SQLUtility.cs
- PriorityQueue.cs
- CancellationScope.cs
- ChannelTerminatedException.cs
- MenuTracker.cs
- XAMLParseException.cs
- ScrollEvent.cs
- PropertyCondition.cs
- CompilationSection.cs
- SplitterPanelDesigner.cs
- FixedSOMImage.cs
- PathBox.cs
- EncoderReplacementFallback.cs
- SponsorHelper.cs
- View.cs
- Screen.cs
- UiaCoreApi.cs
- MemberDomainMap.cs
- ObjectDataSourceStatusEventArgs.cs
- SuppressMergeCheckAttribute.cs
- Transform3DGroup.cs
- StaticResourceExtension.cs
- ConditionCollection.cs
- OpCodes.cs
- DoubleStorage.cs
- CompilerInfo.cs
- RegexWorker.cs
- LinkConverter.cs
- SerializationException.cs
- ActivityPreviewDesigner.cs
- DateTimeEditor.cs
- ToolboxItemFilterAttribute.cs