ADO 事件具現化:ADO 和 WFC
適用於 Windows Foundation Classes 的 ADO (ADO/WFC) 是以 ADO 事件模型為基礎,並呈現簡化的應用程式開發介面。 一般而言,ADO/WFC 會攔截 ADO 事件、將事件參數合併成單一事件類別,然後呼叫您的事件處理常式。
若要在 ADO/WFC 中使用 ADO 事件
定義您自己的事件處理常式以處理事件。 例如,如果您想要處理 ConnectionEvent 系列中的 ConnectComplete 事件,您可以使用下列程式碼:
public void onConnectComplete(Object sender,ConnectionEvent e) { System.out.println("onConnectComplete:" + e); }
定義處理常式物件以表示您的事件處理常式。 此處理常式物件應為 ConnectEventHandler 資料類型 (若事件類型為 ConnectionEvent) 或 RecordsetEventHandler 資料類型 (若事件類型為 RecordsetEvent)。 例如,您可以針對 ConnectComplete 事件處理常式撰寫下列程式碼:
ConnectionEventHandler handler = new ConnectionEventHandler(this, "onConnectComplete");
ConnectionEventHandler 建構函式的第一個引數是類別的參考,其中包含在第二個引數中指定的事件處理常式。
將您的事件處理常式新增至指定來處理特定事件類型的處理常式清單。 使用 addOnEventName(handler) 之類的具名方法。
ADO/WFC 會在內部實作所有 ADO 事件處理常式。 因此,ADO/WFC 事件處理常式會攔截 Connection 或 Recordset 作業所造成的事件。
ADO/WFC 事件處理常式會在 ADO/WFC ConnectionEvent 類別的執行個體中傳遞 ADO ConnectionEvent 參數,或在 ADO/WFC RecordsetEvent 類別的執行個體中傳遞 ADO RecordsetEvent 參數。 這些 ADO/WFC 類別會合併 ADO 事件參數;也就是說,每個 ADO/WFC 類別針對所有 ADO ConnectionEvent 或 RecordsetEvent 方法中的每個唯一參數,會包含一個資料成員。
ADO/WFC 接著會使用 ADO/WFC 事件物件來呼叫您的事件處理常式。 例如,您的 onConnectComplete 處理常式具有如下的簽章:
public void onConnectComplete(Object sender,ConnectionEvent e)
第一個引數是傳送事件 (Connection 或 Recordset) 的物件類型,而第二個引數是 ADO/WFC 事件物件 (ConnectionEvent 或 RecordsetEvent)。
事件處理常式的簽章比 ADO 事件更簡單。 不過,您仍然必須了解 ADO 事件模型,才能知道哪些參數適用於某個事件,以及如何回應。
從您的事件處理常式返回 ADO 事件的 ADO/WFC 處理常式。 ADO/WFC 會將相關的 ADO/WFC 事件資料成員複製回 ADO 事件參數,然後傳回 ADO 事件處理常式。
當您完成處理時,請從 ADO/WFC 事件處理常式清單中移除您的處理常式。 使用 removeOnEventName(handler) 之類的具名方法。