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
- ToolStripProfessionalLowResolutionRenderer.cs
- X500Name.cs
- ResXResourceSet.cs
- HttpCapabilitiesSectionHandler.cs
- IndentedTextWriter.cs
- PolicyStatement.cs
- TextComposition.cs
- CompilerHelpers.cs
- RadialGradientBrush.cs
- DiffuseMaterial.cs
- XmlCustomFormatter.cs
- DataObjectSettingDataEventArgs.cs
- GridViewDeleteEventArgs.cs
- GPPOINTF.cs
- MenuCommand.cs
- PriorityQueue.cs
- CultureInfoConverter.cs
- Hex.cs
- DesignerVerbCollection.cs
- HttpCookie.cs
- SystemPens.cs
- WindowsListBox.cs
- EditorBrowsableAttribute.cs
- StandardCommandToolStripMenuItem.cs
- TextTreeText.cs
- Site.cs
- WebPartZone.cs
- ConsoleEntryPoint.cs
- AddValidationError.cs
- InvalidComObjectException.cs
- unitconverter.cs
- XmlSchemaAnyAttribute.cs
- AnonymousIdentificationModule.cs
- SqlUserDefinedAggregateAttribute.cs
- ToolTipService.cs
- NonSerializedAttribute.cs
- IgnoreDeviceFilterElementCollection.cs
- Stack.cs
- TabletDevice.cs
- ProcessRequestArgs.cs
- BasicKeyConstraint.cs
- DataGridViewRowPrePaintEventArgs.cs
- DateTimeFormatInfo.cs
- WindowsFont.cs
- ContextMenuStripActionList.cs
- URLAttribute.cs
- TextRunCacheImp.cs
- RichTextBox.cs
- CollectionViewSource.cs
- objectresult_tresulttype.cs
- ObjectParameterCollection.cs
- CodeTypeParameter.cs
- PrinterUnitConvert.cs
- BaseTemplateCodeDomTreeGenerator.cs
- OrCondition.cs
- ManualResetEvent.cs
- TdsParser.cs
- VerifyHashRequest.cs
- TaskFactory.cs
- BufferedGraphicsContext.cs
- SoundPlayerAction.cs
- formatter.cs
- MatchSingleFxEngineOpcode.cs
- Translator.cs
- SignatureGenerator.cs
- CodeSubDirectory.cs
- GB18030Encoding.cs
- DataGridViewColumnDividerDoubleClickEventArgs.cs
- PixelFormats.cs
- InputQueue.cs
- TextContainerChangedEventArgs.cs
- UnitySerializationHolder.cs
- SqlTypesSchemaImporter.cs
- DisplayInformation.cs
- Int32KeyFrameCollection.cs
- DocComment.cs
- NumericUpDownAccelerationCollection.cs
- ApplicationFileCodeDomTreeGenerator.cs
- WebGetAttribute.cs
- DataRowComparer.cs
- SQLInt16Storage.cs
- EventlogProvider.cs
- ParameterRefs.cs
- MSAAWinEventWrap.cs
- PopOutPanel.cs
- ConditionalAttribute.cs
- NativeMethodsOther.cs
- DataRow.cs
- PersistenceMetadataNamespace.cs
- AlternationConverter.cs
- lengthconverter.cs
- TemplateBaseAction.cs
- FormViewRow.cs
- DesignerDataTable.cs
- ConstantProjectedSlot.cs
- RouteData.cs
- UniqueIdentifierService.cs
- _LocalDataStoreMgr.cs
- SqlDataSourceView.cs
- WindowsToolbar.cs