Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DLinq / Dlinq / SqlClient / Query / ContainsRowNumberChecker.cs / 1305376 / ContainsRowNumberChecker.cs
using System; using System.Collections.Generic; using System.Text; namespace System.Data.Linq.SqlClient { internal class SqlRowNumberChecker { Visitor rowNumberVisitor; internal SqlRowNumberChecker() { this.rowNumberVisitor = new Visitor(); } internal bool HasRowNumber(SqlNode node) { this.rowNumberVisitor.Visit(node); return rowNumberVisitor.HasRowNumber; } internal bool HasRowNumber(SqlRow row) { foreach (SqlColumn column in row.Columns) { if (this.HasRowNumber(column)) { return true; } } return false; } internal SqlColumn RowNumberColumn { get { return rowNumberVisitor.HasRowNumber ? rowNumberVisitor.CurrentColumn : null; } } private class Visitor: SqlVisitor { bool hasRowNumber = false; public bool HasRowNumber { get { return hasRowNumber; } } public SqlColumn CurrentColumn { private set; get; } internal override SqlRowNumber VisitRowNumber(SqlRowNumber rowNumber) { this.hasRowNumber = true; return rowNumber; } // shortcuts internal override SqlExpression VisitScalarSubSelect(SqlSubSelect ss) { return ss; } internal override SqlExpression VisitSubSelect(SqlSubSelect ss) { return ss; } internal override SqlRow VisitRow(SqlRow row) { for (int i = 0, n = row.Columns.Count; i < n; i++) { row.Columns[i].Expression = this.VisitExpression(row.Columns[i].Expression); if (this.hasRowNumber) { this.CurrentColumn = row.Columns[i]; break; } } return row; } internal override SqlSelect VisitSelect(SqlSelect select) { this.Visit(select.Row); this.Visit(select.Where); 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
- OletxResourceManager.cs
- PeerServiceMessageContracts.cs
- dataprotectionpermission.cs
- PointAnimationUsingKeyFrames.cs
- TextEffect.cs
- FontDifferentiator.cs
- IconBitmapDecoder.cs
- FlowchartStart.xaml.cs
- Sql8ConformanceChecker.cs
- RegexMatch.cs
- DBConnection.cs
- RuleProcessor.cs
- AnnotationComponentManager.cs
- UnsafeCollabNativeMethods.cs
- WindowsPrincipal.cs
- IsolatedStorageFilePermission.cs
- JsonQNameDataContract.cs
- OutputCacheSettings.cs
- SafeNativeMethodsCLR.cs
- LinearGradientBrush.cs
- XmlSchemaAnnotation.cs
- NoClickablePointException.cs
- FolderNameEditor.cs
- DocumentViewerBaseAutomationPeer.cs
- ObjectItemCollection.cs
- CodeCastExpression.cs
- UIElement3D.cs
- OracleParameter.cs
- TextEditorContextMenu.cs
- QualifierSet.cs
- QuaternionAnimationUsingKeyFrames.cs
- DataRelationPropertyDescriptor.cs
- Point3DCollection.cs
- Formatter.cs
- ItemCollection.cs
- DataGridLinkButton.cs
- HtmlPhoneCallAdapter.cs
- ScriptingJsonSerializationSection.cs
- BoundField.cs
- MarshalDirectiveException.cs
- ContextBase.cs
- BitmapCacheBrush.cs
- TextProperties.cs
- DictionaryEntry.cs
- documentsequencetextcontainer.cs
- RectAnimation.cs
- TabControlAutomationPeer.cs
- XPathCompileException.cs
- GZipStream.cs
- Models.cs
- AppModelKnownContentFactory.cs
- CodeBinaryOperatorExpression.cs
- OptimizedTemplateContent.cs
- ValueCollectionParameterReader.cs
- FileAuthorizationModule.cs
- ToolBarOverflowPanel.cs
- CheckBoxStandardAdapter.cs
- TypeConverterAttribute.cs
- SRGSCompiler.cs
- SqlErrorCollection.cs
- FileSystemInfo.cs
- TypeListConverter.cs
- Quaternion.cs
- SecurityResources.cs
- VerificationException.cs
- MasterPage.cs
- WebPartDisplayModeCollection.cs
- TrustManagerPromptUI.cs
- ImageField.cs
- WebServiceErrorEvent.cs
- OdbcCommandBuilder.cs
- Transform.cs
- BlockUIContainer.cs
- FilteredAttributeCollection.cs
- ProfileEventArgs.cs
- FontNamesConverter.cs
- UserMapPath.cs
- ColumnPropertiesGroup.cs
- EventProvider.cs
- AuthenticateEventArgs.cs
- ProjectionPathBuilder.cs
- FixedPageAutomationPeer.cs
- Button.cs
- EncoderParameters.cs
- InstalledFontCollection.cs
- ExpandSegment.cs
- DoubleConverter.cs
- MappingException.cs
- HandledEventArgs.cs
- WebPartZoneCollection.cs
- MsmqIntegrationMessagePool.cs
- DesignerOptionService.cs
- WsrmMessageInfo.cs
- WorkflowInstanceRecord.cs
- EdmItemCollection.cs
- MarkedHighlightComponent.cs
- GenericAuthenticationEventArgs.cs
- StickyNoteAnnotations.cs
- QuotedStringFormatReader.cs
- CleanUpVirtualizedItemEventArgs.cs