Freigeben über


ADO/WFC

Gilt für: Access 2013, Office 2013

ADO für Windows Foundation Classes (ADO/WFC) basiert auf dem ADO-Ereignismodell und stellt eine vereinfachte Anwendungsprogrammierschnittstelle dar. ADO/WFC fängt im Allgemeinen ADO-Ereignisse ab, konsolidiert die Ereignisparameter in einer einzelnen Ereignisklasse und ruft dann den Ereignishandler auf.

So verwenden Sie ADO-Ereignisse in ADO/WFC

  1. Definieren Sie Ihren eigenen Ereignishandler, um ein Ereignis zu verarbeiten. Wenn Sie z. B. das ConnectComplete-Ereignis in der ConnectionEvent-Familie verarbeiten möchten, können Sie folgenden Code verwenden:

    
    public void onConnectComplete(Object sender,ConnectionEvent e) 
    { 
        System.out.println("onConnectComplete:" + e); 
    } 
    
  2. Definieren Sie ein Handlerobjekt, um Ihren Ereignishandler darzustellen. Das Handlerobjekt sollte vom Datentyp ConnectEventHandler für ein Ereignis vom Typ ConnectionEvent sein, oder vom Datentyp RecordsetEventHandler für ein Ereignis vom Typ RecordsetEvent. Erstellen Sie z. B. den folgenden Code für den ConnectComplete-Ereignishandler:

        ConnectionEventHandler handler =  
                new ConnectionEventHandler(this, "onConnectComplete"); 
    

    Das erste Argument des ConnectionEventHandler -Konstruktors ist ein Verweis auf die Klasse, die den im zweiten Argument genannten Ereignishandler enthält. Darüber hinaus unterstützt der Microsoft Visual J++ Compiler eine entsprechende Syntax:

    
        ConnectionEventHandler handler =  
            new ConnectionEventHandler(this, "onConnectComplete"); 
    
    
        ConnectionEventHandler handler =  
            new ConnectionEventHandler(this.onConnectComplete); 
    

    Das erste Argument des ConnectionEventHandler -Konstruktors ist ein Verweis auf die Klasse, die den im zweiten Argument genannten Ereignishandler enthält. Darüber hinaus unterstützt der Microsoft Visual J++ Compiler eine entsprechende Syntax:

    
        ConnectionEventHandler handler =  
            new ConnectionEventHandler(this.onConnectComplete); 
    

    Das einzelne Argument ist ein Verweis auf die gewünschte Klasse (this) und die gewünschte Methode innerhalb der Klasse (onConnectComplete).

  3. Fügen Sie den Ereignishandler einer Liste von Handlern hinzu, die für die Verarbeitung eines bestimmten Ereignistyps vorgesehen sind. Verwenden Sie die Methode mit einem Namen wie z. B. addOnEventName(handler).

  4. ADO/WFC implementiert intern alle ADO-Ereignishandler. Daher wird ein durch einen Connection- oder Recordset-Vorgang verursachtes Ereignis von einem ADO/WFC-Ereignishandler abgefangen. Der ADO/WFC-Ereignishandler übergibt ADO ConnectionEvent-Parameter in einem instance der ADO/WFC ConnectionEvent-Klasse oder ADO RecordsetEvent-Parameter in einem instance der ADO/WFC RecordsetEvent-Klasse. Diese ADO/WFC-Klassen konsolidieren die ADO-Ereignisparameter. Das heißt, jede ADO/WFC-Klasse enthält einen Datenmember für jeden eindeutigen Parameter in allen ADO ConnectionEvent - oder RecordsetEvent-Methoden .

  5. ADO/WFC ruft dann den Ereignishandler mit dem ADO/WFC-Ereignisobjekt auf. Beispielsweise weist Ihr onConnectComplete -Handler eine Signatur wie die folgende auf:

    
        public void onConnectComplete(Object sender,ConnectionEvent e) 
    

    Das erste Argument ist der Objekttyp, der das Ereignis gesendet hat (Connection oder Recordset), und das zweite Argument ist das ADO/WFC-Ereignisobjekt (ConnectionEvent oder RecordsetEvent). Die Signatur des Ereignishandlers ist einfacher als ein ADO-Ereignis. Sie müssen jedoch dennoch das ADO-Ereignismodell kennen, um zu wissen, welche Parameter für ein Ereignis gelten und wie reagiert werden soll.

  6. Wechseln Sie vom Ereignishandler zurück zum ADO/WFC-Handler für das ADO-Ereignis. ADO/WFC kopiert die entsprechenden Datenelemente für das ADO/WFC-Ereignis zurück in die ADO-Ereignisparameter, und anschließend wird wieder der ADO-Ereignishandler angezeigt.

  7. Wenn Sie die Verarbeitung abgeschlossen haben, entfernen Sie den Handler aus der Liste der ADO/WFC-Ereignishandler. Verwenden Sie die Methode mit einem Namen wie z. B. removeOnEventName(handler).