Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / Data / Microsoft / SqlServer / Server / SmiEventSink.cs / 1 / SmiEventSink.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //[....] //----------------------------------------------------------------------------- namespace Microsoft.SqlServer.Server { using System; using System.Data; using System.Data.Sql; // SqlEventSink is implemented by calling code. In all methods that accept // a SqlEventSink directly the sink must be able to handle multiple callbacks // without control returning from the original call. // Methods that do not accept SmiEventSync are (generally) ProcessEvent on // the SmiEventStream methods returning a SmiEventStream and methods that // are certain to never call to the server (most will, for in-proc back end). // Methods are commented with their corresponding TDS token // NOTE: Throwing from these methods will not usually produce the desired // effect -- the managed to native boundary will eat any exceptions, // and will cause a simple "Something bad happened" exception to be // thrown in the native to managed boundary... internal abstract class SmiEventSink { #region Active methods // Called at end of stream whether errors or no internal abstract void BatchCompleted( ); // Called zero or one time when output parameters are available (errors could prevent event from occuring) internal virtual void ParameterAvailable(SmiParameterMetaData metaData, SmiTypedGetterSetter paramValue, int ordinal) { // Adding as of V200 // Implement body with throw because there are only a couple of ways to get to this code: // 1) Client is calling this method even though the server negotiated for V3- and hasn't implemented V200 yet. // 2) Server didn't implement V200 on some interface, but negotiated V200+. System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod ); } // Called when the server database context changes (ENVCHANGE token) internal abstract void DefaultDatabaseChanged( string databaseName ); // Called for messages and errors (ERROR and INFO tokens) internal abstract void MessagePosted ( int number, byte state, byte errorClass, string server, string message, string procedure, int lineNumber ); // Called for new resultset starting (COLMETADATA token) internal abstract void MetaDataAvailable( SmiQueryMetaData[] metaData, bool nextEventIsRow ); internal virtual void RowAvailable(SmiTypedGetterSetter rowData) { // Adding as of V200 // Implement body with throw because there are only a couple of ways to get to this code: // 1) Client is calling this method even though the server negotiated for V3- and hasn't implemented V200 yet. // 2) Server didn't implement V200 on some interface, but negotiated V200+. System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod ); } // Called when any statement completes on server (DONE token) internal abstract void StatementCompleted( int rowsAffected ); // Called when a transaction is commited (ENVCHANGE token) internal abstract void TransactionCommitted( long transactionId ); // Called when a transaction is commited (ENVCHANGE token) internal abstract void TransactionDefected( long transactionId ); // Called when a transaction is commited (ENVCHANGE token) internal abstract void TransactionEnlisted( long transactionId ); // Called when a transaction is forcibly ended in the server, not requested // by the provider's batch (ENVCHANGE token) internal abstract void TransactionEnded( long transactionId ); // Called when a transaction is rolled back (ENVCHANGE token) internal abstract void TransactionRolledBack( long transactionId ); // Called when a transaction is started (ENVCHANGE token) internal abstract void TransactionStarted( long transactionId ); #endregion #region OBSOLETE METHODS #region OBSOLETED as of V200 but active in previous version // Called zero or one time when output parameters are available (errors could prevent event from occuring) internal virtual void ParametersAvailable( SmiParameterMetaData[] metaData, ITypedGettersV3 paramValues ) { // Adding as of V3 // Obsoleting as of V200 // Implement body with throw because there are only a couple of ways to get to this code: // 1) Client is calling this method even though the server negotiated for V200+ and dropped support for V200-. // 2) Server didn't implement V3- on some interface and negotiated V3-. System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod ); } // Called when a new row arrives (ROW token) internal virtual void RowAvailable( ITypedGettersV3 rowData ) { // Adding as of V3 // Obsoleting as of V200 // Implement body with throw because there are only a couple of ways to get to this code: // 1) Client is calling this method even though the server negotiated for V200+ and dropped support for V200-. // 2) Server didn't implement V3- on some interface and negotiated V3-. System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod ); } #endregion #region OBSOLETED and never shipped (without ObsoleteAttribute) // Called when a new row arrives (ROW token) internal virtual void RowAvailable( ITypedGetters rowData ) { // Obsoleting from SMI -- use end of dispose that takes an event sink instead. // Intended to be removed (along with inheriting IDisposable) prior to RTM. // Implement body with throw because there are only a couple of ways to get to this code: // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-. // 2) Server didn't implement V2- on some interface and negotiated V2-. System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod ); } #endregion #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //[....] //----------------------------------------------------------------------------- namespace Microsoft.SqlServer.Server { using System; using System.Data; using System.Data.Sql; // SqlEventSink is implemented by calling code. In all methods that accept // a SqlEventSink directly the sink must be able to handle multiple callbacks // without control returning from the original call. // Methods that do not accept SmiEventSync are (generally) ProcessEvent on // the SmiEventStream methods returning a SmiEventStream and methods that // are certain to never call to the server (most will, for in-proc back end). // Methods are commented with their corresponding TDS token // NOTE: Throwing from these methods will not usually produce the desired // effect -- the managed to native boundary will eat any exceptions, // and will cause a simple "Something bad happened" exception to be // thrown in the native to managed boundary... internal abstract class SmiEventSink { #region Active methods // Called at end of stream whether errors or no internal abstract void BatchCompleted( ); // Called zero or one time when output parameters are available (errors could prevent event from occuring) internal virtual void ParameterAvailable(SmiParameterMetaData metaData, SmiTypedGetterSetter paramValue, int ordinal) { // Adding as of V200 // Implement body with throw because there are only a couple of ways to get to this code: // 1) Client is calling this method even though the server negotiated for V3- and hasn't implemented V200 yet. // 2) Server didn't implement V200 on some interface, but negotiated V200+. System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod ); } // Called when the server database context changes (ENVCHANGE token) internal abstract void DefaultDatabaseChanged( string databaseName ); // Called for messages and errors (ERROR and INFO tokens) internal abstract void MessagePosted ( int number, byte state, byte errorClass, string server, string message, string procedure, int lineNumber ); // Called for new resultset starting (COLMETADATA token) internal abstract void MetaDataAvailable( SmiQueryMetaData[] metaData, bool nextEventIsRow ); internal virtual void RowAvailable(SmiTypedGetterSetter rowData) { // Adding as of V200 // Implement body with throw because there are only a couple of ways to get to this code: // 1) Client is calling this method even though the server negotiated for V3- and hasn't implemented V200 yet. // 2) Server didn't implement V200 on some interface, but negotiated V200+. System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod ); } // Called when any statement completes on server (DONE token) internal abstract void StatementCompleted( int rowsAffected ); // Called when a transaction is commited (ENVCHANGE token) internal abstract void TransactionCommitted( long transactionId ); // Called when a transaction is commited (ENVCHANGE token) internal abstract void TransactionDefected( long transactionId ); // Called when a transaction is commited (ENVCHANGE token) internal abstract void TransactionEnlisted( long transactionId ); // Called when a transaction is forcibly ended in the server, not requested // by the provider's batch (ENVCHANGE token) internal abstract void TransactionEnded( long transactionId ); // Called when a transaction is rolled back (ENVCHANGE token) internal abstract void TransactionRolledBack( long transactionId ); // Called when a transaction is started (ENVCHANGE token) internal abstract void TransactionStarted( long transactionId ); #endregion #region OBSOLETE METHODS #region OBSOLETED as of V200 but active in previous version // Called zero or one time when output parameters are available (errors could prevent event from occuring) internal virtual void ParametersAvailable( SmiParameterMetaData[] metaData, ITypedGettersV3 paramValues ) { // Adding as of V3 // Obsoleting as of V200 // Implement body with throw because there are only a couple of ways to get to this code: // 1) Client is calling this method even though the server negotiated for V200+ and dropped support for V200-. // 2) Server didn't implement V3- on some interface and negotiated V3-. System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod ); } // Called when a new row arrives (ROW token) internal virtual void RowAvailable( ITypedGettersV3 rowData ) { // Adding as of V3 // Obsoleting as of V200 // Implement body with throw because there are only a couple of ways to get to this code: // 1) Client is calling this method even though the server negotiated for V200+ and dropped support for V200-. // 2) Server didn't implement V3- on some interface and negotiated V3-. System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod ); } #endregion #region OBSOLETED and never shipped (without ObsoleteAttribute) // Called when a new row arrives (ROW token) internal virtual void RowAvailable( ITypedGetters rowData ) { // Obsoleting from SMI -- use end of dispose that takes an event sink instead. // Intended to be removed (along with inheriting IDisposable) prior to RTM. // Implement body with throw because there are only a couple of ways to get to this code: // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-. // 2) Server didn't implement V2- on some interface and negotiated V2-. System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod ); } #endregion #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
- _BufferOffsetSize.cs
- Hyperlink.cs
- ReadContentAsBinaryHelper.cs
- IPEndPoint.cs
- ReadOnlyDataSource.cs
- PublisherMembershipCondition.cs
- LogLogRecordHeader.cs
- TraceContextRecord.cs
- CompilationUnit.cs
- Grant.cs
- CodeSubDirectory.cs
- DataListItem.cs
- FilteredAttributeCollection.cs
- XmlComplianceUtil.cs
- Transform.cs
- Verify.cs
- PriorityChain.cs
- XmlSchemaGroupRef.cs
- WebUtil.cs
- Soap12ProtocolReflector.cs
- HttpStreamMessageEncoderFactory.cs
- FormDesigner.cs
- PersonalizationAdministration.cs
- WebBaseEventKeyComparer.cs
- C14NUtil.cs
- HttpCachePolicy.cs
- DashStyle.cs
- DbTransaction.cs
- ListViewAutomationPeer.cs
- ToolStripManager.cs
- BinHexDecoder.cs
- SerializationObjectManager.cs
- ColorConverter.cs
- HttpSysSettings.cs
- CollaborationHelperFunctions.cs
- AxImporter.cs
- Compiler.cs
- ChannelDispatcher.cs
- DecimalFormatter.cs
- EntityDataReader.cs
- AliasExpr.cs
- SizeChangedInfo.cs
- TypeDescriptionProviderAttribute.cs
- WindowsTokenRoleProvider.cs
- MetadataSection.cs
- XmlQualifiedNameTest.cs
- FontDifferentiator.cs
- GeometryValueSerializer.cs
- SchemaConstraints.cs
- QuaternionConverter.cs
- PageCache.cs
- LassoSelectionBehavior.cs
- XmlRootAttribute.cs
- DbProviderManifest.cs
- XPathParser.cs
- Models.cs
- ThemeableAttribute.cs
- ProcessHost.cs
- DocumentEventArgs.cs
- ComponentEditorPage.cs
- InternalSafeNativeMethods.cs
- sqlser.cs
- BulletChrome.cs
- PageBuildProvider.cs
- StrokeIntersection.cs
- IDataContractSurrogate.cs
- CustomErrorsSectionWrapper.cs
- ExpressionBuilder.cs
- FormsAuthenticationUser.cs
- FileSecurity.cs
- DuplexChannelFactory.cs
- WebPartConnectionsCancelVerb.cs
- HttpDebugHandler.cs
- ParentQuery.cs
- PrintDialogException.cs
- QuadraticBezierSegment.cs
- TypeDescriptor.cs
- ObservableDictionary.cs
- ConfigurationManagerInternalFactory.cs
- ConnectionManagementSection.cs
- RowBinding.cs
- RecognizerStateChangedEventArgs.cs
- OutOfProcStateClientManager.cs
- MetadataItem_Static.cs
- UIElementParagraph.cs
- AnnotationResourceChangedEventArgs.cs
- ProfileService.cs
- CodeDefaultValueExpression.cs
- TreeViewCancelEvent.cs
- ECDsa.cs
- DataGridViewRowsRemovedEventArgs.cs
- AspNetHostingPermission.cs
- CodeAttributeArgumentCollection.cs
- Clipboard.cs
- streamingZipPartStream.cs
- FrameworkElementAutomationPeer.cs
- WebPartCancelEventArgs.cs
- CustomCategoryAttribute.cs
- TypefaceCollection.cs
- BindingSource.cs