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
- SoapSchemaMember.cs
- HttpWebRequest.cs
- CompressEmulationStream.cs
- KeyInfo.cs
- CustomAttributeBuilder.cs
- ProvidersHelper.cs
- WasEndpointConfigContainer.cs
- ParserStreamGeometryContext.cs
- InheritedPropertyChangedEventArgs.cs
- HScrollBar.cs
- SqlDataSourceView.cs
- XXXInfos.cs
- UriParserTemplates.cs
- Point3D.cs
- SuppressIldasmAttribute.cs
- DoubleAnimation.cs
- NotSupportedException.cs
- TypeDependencyAttribute.cs
- SoapExtensionImporter.cs
- LifetimeServices.cs
- LambdaCompiler.Unary.cs
- EventMappingSettings.cs
- MergeLocalizationDirectives.cs
- SmuggledIUnknown.cs
- PointAnimationUsingKeyFrames.cs
- SerialReceived.cs
- SystemTcpConnection.cs
- SHA512Managed.cs
- DependencyPropertyHelper.cs
- WebServiceEnumData.cs
- EmissiveMaterial.cs
- TextEvent.cs
- EventPropertyMap.cs
- SourceFileBuildProvider.cs
- unsafeIndexingFilterStream.cs
- PasswordPropertyTextAttribute.cs
- SqlClientMetaDataCollectionNames.cs
- PrintPreviewDialog.cs
- NameTable.cs
- PointUtil.cs
- ChoiceConverter.cs
- Int32Converter.cs
- ListSurrogate.cs
- ObjectNotFoundException.cs
- Stacktrace.cs
- FloatUtil.cs
- HtmlObjectListAdapter.cs
- AccessibleObject.cs
- ToolStripSplitStackLayout.cs
- Viewport3DVisual.cs
- ServiceThrottlingElement.cs
- HtmlElementErrorEventArgs.cs
- ServicePointManagerElement.cs
- AuthenticationModuleElementCollection.cs
- KeyGesture.cs
- WebControlsSection.cs
- CapabilitiesRule.cs
- IUnknownConstantAttribute.cs
- PropertyDescriptor.cs
- CodeComment.cs
- UDPClient.cs
- FileClassifier.cs
- DataGridViewCheckBoxCell.cs
- UnsafeNativeMethods.cs
- FileFormatException.cs
- XmlConvert.cs
- PhoneCall.cs
- OrderByQueryOptionExpression.cs
- RepeaterItemEventArgs.cs
- ButtonChrome.cs
- TextureBrush.cs
- XmlUtil.cs
- HostSecurityManager.cs
- DragEvent.cs
- elementinformation.cs
- ToolStripPanelCell.cs
- FilteredReadOnlyMetadataCollection.cs
- UnsafeNativeMethods.cs
- MediaCommands.cs
- PermissionSetTriple.cs
- PageRanges.cs
- CustomErrorsSectionWrapper.cs
- SqlTriggerAttribute.cs
- TableDetailsCollection.cs
- BindToObject.cs
- ResourcesBuildProvider.cs
- ContourSegment.cs
- UIElement3D.cs
- NaturalLanguageHyphenator.cs
- XamlInt32CollectionSerializer.cs
- ResourceIDHelper.cs
- ColumnTypeConverter.cs
- SectionXmlInfo.cs
- TabletDeviceInfo.cs
- DataBindingCollectionConverter.cs
- Mutex.cs
- DataSourceCache.cs
- CollectionDataContractAttribute.cs
- BufferedWebEventProvider.cs
- Slider.cs