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
- HtmlControlPersistable.cs
- WebPartDisplayModeEventArgs.cs
- SqlExpander.cs
- MatrixValueSerializer.cs
- SkewTransform.cs
- XhtmlBasicCalendarAdapter.cs
- NumericPagerField.cs
- DataGridItemCollection.cs
- EdmScalarPropertyAttribute.cs
- TemplateAction.cs
- SecureStringHasher.cs
- IsolatedStoragePermission.cs
- BindingExpressionBase.cs
- GridViewSortEventArgs.cs
- MessageQueueConverter.cs
- WarningException.cs
- TypedCompletedAsyncResult.cs
- RedirectionProxy.cs
- HasCopySemanticsAttribute.cs
- RuleInfoComparer.cs
- AttachInfo.cs
- ConstrainedDataObject.cs
- TextBlock.cs
- AspCompat.cs
- CommandHelpers.cs
- EraserBehavior.cs
- Decimal.cs
- RTLAwareMessageBox.cs
- Enlistment.cs
- ListViewItemSelectionChangedEvent.cs
- CollectionDataContract.cs
- ClientProxyGenerator.cs
- DoubleCollection.cs
- TraceRecords.cs
- CodeTypeParameterCollection.cs
- PointLightBase.cs
- SerializationInfoEnumerator.cs
- SqlUtils.cs
- SizeAnimationUsingKeyFrames.cs
- Floater.cs
- PageContent.cs
- DirectoryLocalQuery.cs
- BufferModesCollection.cs
- LineBreakRecord.cs
- CommandDevice.cs
- BaseTreeIterator.cs
- CodeThrowExceptionStatement.cs
- Matrix.cs
- cryptoapiTransform.cs
- RadioButtonFlatAdapter.cs
- MSAANativeProvider.cs
- Page.cs
- SqlRewriteScalarSubqueries.cs
- DataKeyCollection.cs
- RegexTree.cs
- DataGridViewColumnCollection.cs
- XPathItem.cs
- DocumentOutline.cs
- ExtensionSimplifierMarkupObject.cs
- QueryContinueDragEvent.cs
- PersistenceException.cs
- XmlSchemaRedefine.cs
- SafeProcessHandle.cs
- PopOutPanel.cs
- OperationResponse.cs
- ExtendedProtectionPolicyElement.cs
- SpellCheck.cs
- RootBrowserWindowAutomationPeer.cs
- SeparatorAutomationPeer.cs
- SessionPageStatePersister.cs
- GenericTypeParameterBuilder.cs
- ArrayHelper.cs
- ChangeConflicts.cs
- ListSourceHelper.cs
- DataGridCellsPresenter.cs
- _AutoWebProxyScriptEngine.cs
- DataSourceExpression.cs
- FontConverter.cs
- CRYPTPROTECT_PROMPTSTRUCT.cs
- EncoderReplacementFallback.cs
- ReadWriteControlDesigner.cs
- GeneralTransform3D.cs
- SerializationEventsCache.cs
- ServiceReference.cs
- _HeaderInfoTable.cs
- TransformGroup.cs
- AspCompat.cs
- DynamicDataRoute.cs
- WebPartTransformerCollection.cs
- PanelStyle.cs
- RawStylusActions.cs
- PartBasedPackageProperties.cs
- MessageDecoder.cs
- SafeProcessHandle.cs
- ReferencedAssembly.cs
- AutoGeneratedField.cs
- RawAppCommandInputReport.cs
- Tablet.cs
- LicenseManager.cs
- RowToParametersTransformer.cs