Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntity / System / Data / SqlClient / SqlGen / OptionalColumn.cs / 1305376 / OptionalColumn.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] //--------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Diagnostics; namespace System.Data.SqlClient.SqlGen { ////// Represents a column in a select list that should be printed only if it is later used. /// Such columns get added by internal sealed class OptionalColumn { #region Private State private readonly SymbolUsageManager m_usageManager; // The SqlBuilder that contains the column building blocks (e.g: "c.X as X1") private readonly SqlBuilder m_builder = new SqlBuilder(); // The symbol representing the optional column private readonly Symbol m_symbol; #endregion #region Internal Methods ///. /// The SymbolUsageManager associated with the OptionalColumn has the information whether the column /// has been used based on its symbol. /// /// Append to the "fragment" representing this column /// internal void Append(object s) { m_builder.Append(s); } internal void MarkAsUsed() { this.m_usageManager.MarkAsUsed(this.m_symbol); } #endregion #region Constructor internal OptionalColumn(SymbolUsageManager usageManager, Symbol symbol) { this.m_usageManager = usageManager; this.m_symbol = symbol; } #endregion #region Internal members ////// Writes that fragment that represents the optional column /// if the usage manager says it is used. /// /// /// public bool WriteSqlIfUsed(SqlWriter writer, SqlGenerator sqlGenerator, string separator) { if (m_usageManager.IsUsed(m_symbol)) { writer.Write(separator); m_builder.WriteSql(writer, sqlGenerator); return true; } return false; } #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] //--------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Diagnostics; namespace System.Data.SqlClient.SqlGen { ////// Represents a column in a select list that should be printed only if it is later used. /// Such columns get added by internal sealed class OptionalColumn { #region Private State private readonly SymbolUsageManager m_usageManager; // The SqlBuilder that contains the column building blocks (e.g: "c.X as X1") private readonly SqlBuilder m_builder = new SqlBuilder(); // The symbol representing the optional column private readonly Symbol m_symbol; #endregion #region Internal Methods ///. /// The SymbolUsageManager associated with the OptionalColumn has the information whether the column /// has been used based on its symbol. /// /// Append to the "fragment" representing this column /// internal void Append(object s) { m_builder.Append(s); } internal void MarkAsUsed() { this.m_usageManager.MarkAsUsed(this.m_symbol); } #endregion #region Constructor internal OptionalColumn(SymbolUsageManager usageManager, Symbol symbol) { this.m_usageManager = usageManager; this.m_symbol = symbol; } #endregion #region Internal members ////// Writes that fragment that represents the optional column /// if the usage manager says it is used. /// /// /// public bool WriteSqlIfUsed(SqlWriter writer, SqlGenerator sqlGenerator, string separator) { if (m_usageManager.IsUsed(m_symbol)) { writer.Write(separator); m_builder.WriteSql(writer, sqlGenerator); return true; } return false; } #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- XamlRtfConverter.cs
- PartialList.cs
- MaskInputRejectedEventArgs.cs
- DbInsertCommandTree.cs
- ZipFileInfoCollection.cs
- InternalUserCancelledException.cs
- SQLByteStorage.cs
- ButtonFieldBase.cs
- ColumnTypeConverter.cs
- DbMetaDataColumnNames.cs
- EditorBrowsableAttribute.cs
- StylusButtonEventArgs.cs
- DataGridItem.cs
- BaseCodePageEncoding.cs
- KeyValuePairs.cs
- Vector3DAnimation.cs
- DetailsViewDeleteEventArgs.cs
- PermissionRequestEvidence.cs
- Visitors.cs
- EnumerableCollectionView.cs
- CodeCommentStatementCollection.cs
- VisualCollection.cs
- HashAlgorithm.cs
- SessionStateModule.cs
- TabPanel.cs
- CodeNamespaceCollection.cs
- VirtualPathProvider.cs
- ContainerUtilities.cs
- ArrayTypeMismatchException.cs
- NativeRecognizer.cs
- TrimSurroundingWhitespaceAttribute.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- EventToken.cs
- Geometry.cs
- WindowsToolbar.cs
- ServiceControllerDesigner.cs
- RuntimeConfig.cs
- SystemUdpStatistics.cs
- TrackingSection.cs
- DesignerActionUIStateChangeEventArgs.cs
- Cursor.cs
- FontWeight.cs
- IDispatchConstantAttribute.cs
- AdjustableArrowCap.cs
- RectangleHotSpot.cs
- ColumnClickEvent.cs
- Underline.cs
- NodeLabelEditEvent.cs
- XmlSchemaNotation.cs
- Style.cs
- IPEndPointCollection.cs
- EditorZoneBase.cs
- MatrixStack.cs
- DefaultTypeArgumentAttribute.cs
- CodeCatchClause.cs
- GraphicsContext.cs
- httpapplicationstate.cs
- XNodeSchemaApplier.cs
- ParameterCollection.cs
- MutexSecurity.cs
- TextLine.cs
- MethodToken.cs
- UIPropertyMetadata.cs
- TrackPoint.cs
- ScrollBar.cs
- TrackingDataItem.cs
- AsyncStreamReader.cs
- WindowsPen.cs
- MultiAsyncResult.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- FrameworkElementAutomationPeer.cs
- TypeDescriptionProvider.cs
- BitSet.cs
- ByteAnimation.cs
- JsonServiceDocumentSerializer.cs
- ZoomingMessageFilter.cs
- OpenFileDialog.cs
- ManipulationCompletedEventArgs.cs
- LinqExpressionNormalizer.cs
- MatchAttribute.cs
- Parameter.cs
- CommandLibraryHelper.cs
- DBConcurrencyException.cs
- BatchStream.cs
- SafeLocalAllocation.cs
- GetPageCompletedEventArgs.cs
- XmlSchemaInferenceException.cs
- SettingsPropertyWrongTypeException.cs
- OutputCacheSettings.cs
- SmtpClient.cs
- NetworkCredential.cs
- QueryOperationResponseOfT.cs
- ExceptionHandlers.cs
- LinqDataSourceHelper.cs
- DelegateTypeInfo.cs
- XPathSelectionIterator.cs
- TagMapInfo.cs
- RunWorkerCompletedEventArgs.cs
- SystemMulticastIPAddressInformation.cs
- SmtpSection.cs