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
- GradientStop.cs
- GiveFeedbackEventArgs.cs
- FormatConvertedBitmap.cs
- CFStream.cs
- TraceLevelStore.cs
- Attributes.cs
- ToolStripDropDownMenu.cs
- XmlTypeMapping.cs
- Message.cs
- Rss20FeedFormatter.cs
- PlainXmlDeserializer.cs
- TypeElement.cs
- SQLRoleProvider.cs
- ActiveXContainer.cs
- SequenceFullException.cs
- GenericWebPart.cs
- XmlSchemaType.cs
- AsymmetricAlgorithm.cs
- SchemaType.cs
- FixUp.cs
- EnumUnknown.cs
- DefaultShape.cs
- MarkupCompilePass1.cs
- ScrollViewer.cs
- EnumerableValidator.cs
- PathSegmentCollection.cs
- Connector.xaml.cs
- GZipDecoder.cs
- WebPartZone.cs
- ClientEventManager.cs
- TransactionFlowBindingElement.cs
- WebReferenceOptions.cs
- ScriptReference.cs
- Graphics.cs
- SqlDelegatedTransaction.cs
- PermissionListSet.cs
- BindingListCollectionView.cs
- ServiceAuthorizationManager.cs
- ValuePattern.cs
- IconHelper.cs
- HighContrastHelper.cs
- InvalidProgramException.cs
- mediapermission.cs
- XmlSchemaAnyAttribute.cs
- ConvertEvent.cs
- ReadWriteObjectLock.cs
- RSACryptoServiceProvider.cs
- KeyPullup.cs
- HuffCodec.cs
- ReadOnlyTernaryTree.cs
- IdentityHolder.cs
- IndentedTextWriter.cs
- TextRunProperties.cs
- TreeNodeClickEventArgs.cs
- GridViewColumnHeaderAutomationPeer.cs
- Size.cs
- CommentAction.cs
- ErrorFormatterPage.cs
- BitVector32.cs
- MachineKeyConverter.cs
- TouchEventArgs.cs
- SelfIssuedAuthAsymmetricKey.cs
- ValueQuery.cs
- DbProviderManifest.cs
- BrowserCapabilitiesCodeGenerator.cs
- MorphHelpers.cs
- DesignerActionHeaderItem.cs
- ScanQueryOperator.cs
- MarkupCompiler.cs
- HostAdapter.cs
- EventBookmark.cs
- EntityDataSourceEntityTypeFilterConverter.cs
- XmlTextWriter.cs
- TextTrailingCharacterEllipsis.cs
- InputScopeManager.cs
- FontCollection.cs
- MDIClient.cs
- GeometryDrawing.cs
- SiteMembershipCondition.cs
- MSG.cs
- _ContextAwareResult.cs
- ConfigurationLocationCollection.cs
- NullableDoubleMinMaxAggregationOperator.cs
- CapabilitiesPattern.cs
- DispatcherEventArgs.cs
- EventSource.cs
- SynchronizedDispatch.cs
- SHA384CryptoServiceProvider.cs
- TaskHelper.cs
- PKCS1MaskGenerationMethod.cs
- ChannelManagerHelpers.cs
- SequentialUshortCollection.cs
- DbParameterHelper.cs
- QuaternionAnimationBase.cs
- CultureTableRecord.cs
- BitmapFrame.cs
- tooltip.cs
- WebZone.cs
- login.cs
- ProbeMatchesMessageCD1.cs