Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / ndp / fx / src / DLinq / Dlinq / SqlClient / Query / ContainsRowNumberChecker.cs / 1 / 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.
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
- HtmlProps.cs
- VectorCollectionConverter.cs
- ResourceExpression.cs
- UndoManager.cs
- Helpers.cs
- CellParagraph.cs
- XmlLinkedNode.cs
- NotifyIcon.cs
- AxWrapperGen.cs
- BaseCAMarshaler.cs
- EntityUtil.cs
- DataGridViewAutoSizeModeEventArgs.cs
- CompositeDataBoundControl.cs
- ConfigDefinitionUpdates.cs
- MouseEventArgs.cs
- DataTableExtensions.cs
- UniqueIdentifierService.cs
- IPAddress.cs
- ValidatorCompatibilityHelper.cs
- TranslateTransform.cs
- PrePostDescendentsWalker.cs
- SqlServer2KCompatibilityCheck.cs
- DataSysAttribute.cs
- AnimationTimeline.cs
- GridViewSortEventArgs.cs
- DataKey.cs
- ActiveXHelper.cs
- RestrictedTransactionalPackage.cs
- UInt16.cs
- ThicknessAnimation.cs
- EmptyEnumerator.cs
- SchemaMapping.cs
- ToolStripLabel.cs
- CroppedBitmap.cs
- PersistChildrenAttribute.cs
- ArrangedElementCollection.cs
- X509Chain.cs
- XmlSerializerFactory.cs
- ISAPIApplicationHost.cs
- DataGridViewComboBoxColumn.cs
- DataSourceConverter.cs
- RepeaterItemEventArgs.cs
- StrongNameMembershipCondition.cs
- ConstructorNeedsTagAttribute.cs
- _UriSyntax.cs
- OleDbFactory.cs
- TableLayoutSettingsTypeConverter.cs
- RunClient.cs
- FormsAuthenticationEventArgs.cs
- WindowsTooltip.cs
- SQLCharsStorage.cs
- Accessible.cs
- BitConverter.cs
- DbConnectionStringBuilder.cs
- UIAgentMonitor.cs
- ReaderWriterLock.cs
- ConfigXmlElement.cs
- hebrewshape.cs
- MimeTypePropertyAttribute.cs
- DataGrid.cs
- WebPartEditVerb.cs
- MissingMethodException.cs
- FlowDocumentFormatter.cs
- TextEditorDragDrop.cs
- ResourcesBuildProvider.cs
- SqlDataSourceQueryEditorForm.cs
- ErrorStyle.cs
- DelegateSerializationHolder.cs
- MinimizableAttributeTypeConverter.cs
- DataServiceRequestOfT.cs
- SvcFileManager.cs
- BitmapEffectGroup.cs
- Matrix3D.cs
- XmlSerializerFaultFormatter.cs
- GroupBoxRenderer.cs
- HandlerMappingMemo.cs
- _AutoWebProxyScriptHelper.cs
- PersonalizationDictionary.cs
- UnmanagedMemoryAccessor.cs
- SqlComparer.cs
- TearOffProxy.cs
- TreeNodeCollection.cs
- HwndPanningFeedback.cs
- LongCountAggregationOperator.cs
- FastEncoder.cs
- NetworkCredential.cs
- ColumnCollection.cs
- MsmqHostedTransportManager.cs
- InputProcessorProfilesLoader.cs
- WaitHandle.cs
- ProcessActivityTreeOptions.cs
- HtmlWindowCollection.cs
- ShapingEngine.cs
- ErrorStyle.cs
- _Events.cs
- XXXInfos.cs
- TextRangeAdaptor.cs
- InstanceDescriptor.cs
- CaseStatement.cs
- SoapFormatter.cs