PipelineComponent.AcquireConnections(Object) Methode

Definition

Stellt eine Verbindung mit einem Verbindungs-Manager her.

public:
 virtual void AcquireConnections(System::Object ^ transaction);
public virtual void AcquireConnections (object transaction);
abstract member AcquireConnections : obj -> unit
override this.AcquireConnections : obj -> unit
Public Overridable Sub AcquireConnections (transaction As Object)

Parameter

transaction
Object

Die Transaktion, an der die Verbindung beteiligt ist.

Beispiele

Das folgende Beispiel zeigt eine Komponente, die während AcquireConnectionseine Verbindung mit einem ADO.NET-Verbindungs-Manager herstellt.

public override void AcquireConnections(object transaction)  
{  
    if (ComponentMetaData.RuntimeConnectionCollection[0].ConnectionManager != null)  
    {  
            // Convert the native IDTSConnectionManager100 to the managed ConnectionManager,  
            // then retrieve the underlying connection through the InnerObject.  
            ConnectionManager cm = Microsoft.SqlServer.Dts.Runtime.DtsConvert.ToConnectionManager(ComponentMetaData.RuntimeConnectionCollection[0].ConnectionManager);  
            ConnectionManagerAdoNet cmado = cm.InnerObject  as ConnectionManagerAdoNet;  

            // If the InnerObject is not an ConnectionManagerAdoNet, then  
            // the cmado object is null.  
            if( cmado == null )  
                throw new Exception("The ConnectionManager " + cm.Name + " is not an ADO.NET connection.");  

            // Get the underlying connection object.  
            this.oledbConnection = cmado.AcquireConnection(transaction) as OleDbConnection;  

            if( this.oledbConnection == null )  
                throw new Exception("The ConnectionManager " + cm.Name + " is not an ADO.NET connection.");  

            isConnected = true;  
    }  
}  
Public Overrides Sub AcquireConnections(ByVal transaction As Object)   
 If Not (ComponentMetaData.RuntimeConnectionCollection(0).ConnectionManager Is Nothing) Then   
   ' Convert the native IDTSConnectionManager100 to the managed ConnectionManager,  
   '  then retrieve the underlying connection through the InnerObject.  
   Dim cm As ConnectionManager = Microsoft.SqlServer.Dts.Runtime.DtsConvert.ToConnectionManager(ComponentMetaData.RuntimeConnectionCollection(0).ConnectionManager)   
   Dim cmado As ConnectionManagerAdoNet = CType(ConversionHelpers.AsWorkaround(cm.InnerObject, GetType(ConnectionManagerAdoNet)), ConnectionManagerAdoNet)   
   ' If the InnerObject is not an ConnectionManagerAdoNet, then  
   '  the cmado object is null.  
   If cmado Is Nothing Then   
     Throw New Exception("The ConnectionManager " + cm.Name + " is not an ADO.NET connection.")   
   End If   
   ' Get the underlying connection object.  
   Me.oledbConnection = CType(ConversionHelpers.AsWorkaround(cmado.AcquireConnection(transaction), GetType(OleDbConnection)), OleDbConnection)   
   If Me.oledbConnection Is Nothing Then   
     Throw New Exception("The ConnectionManager " + cm.Name + " is not an ADO.NET connection.")   
   End If   
   isConnected = True   
 End If   
End Sub  

Hinweise

AcquireConnections wird sowohl während des Komponentenentwurfs als auch während der Ausführung aufgerufen. Komponenten, die eine Verbindung mit externen Datenquellen herstellen, sollten ihre Verbindungen während dieser Methode herstellen. Jede während dieser Methode hergestellte Verbindung sollte in einer lokalen Membervariable zwischengespeichert und in der ReleaseConnections -Methode freigegeben werden. Verbindungen sollten nur während AcquireConnectionshergestellt werden.

Gilt für: