共用方式為


使用 Managed 事件提交 API

當您使用可以提供事件作為個別項目的任何事件來源時,您可以使用自訂事件提供者中的 EventCollectorEvent 類別。這些類別可以在 Microsoft.SqlServer.NotificationServices 命名空間中找到。

EventCollector 物件

EventCollector 物件會蒐集事件,然後將事件批次提交給 Notification Services 應用程式。當您建立 EventCollector 物件時,您必須利用應用程式和事件提供者名稱來初始化該物件。

事件物件

Event 物件會封裝單一事件的資料。當您建立 Event 物件時,您必須利用應用程式和事件類別名稱來初始化該物件,然後提供事件欄位的值。Event 物件的欄位由事件類別結構描述來定義。

ms171243.note(zh-tw,SQL.90).gif附註:
您可以建立 Event 物件,但不將它初始化。這可讓您建立一個「中斷連接」的 Event 物件,這個物件不參考 Notification Services 應用程式若要使用這項技術,您在開發時必須知道事件類別名稱和事件欄位名稱。

您必須為您要建立的每個事件記錄建立、擴展及提交一個 Event 物件。將事件寫入 EventCollector 物件之後,您可以重複使用 Event 物件。

撰寫及認可事件

當您建立 Event 物件並利用事件資料擴展它之後,您可以利用 Write方法,將它加入 EventCollector 物件中。

EventCollector 物件也提供 Abort 方法。您可以呼叫這個方法來捨棄目前的事件批次。

EventCollector 和事件物件範例

這個範例使用下列命名空間:

  • System
  • Microsoft.SqlServer.NotificationServices
string instanceName = "Tutorial";
string applicationName = "Weather";
string eventClassName = "WeatherEvents";
string eventProviderName = "WeatherSPs";

// Create an NSInstance object.
NSInstance testInstance = new NSInstance(instanceName);

// Create an NSApplication object.
NSApplication testApplication =
    new NSApplication(testInstance, applicationName);

// Create an EventCollector object.
EventCollector testEventCollector =
    new EventCollector(testApplication, eventProviderName);

// Create and define an Event object.
Event evt = new Event(testApplication, eventClassName);
evt["City"] = "Seattle";
evt["Date"] = DateTime.Now;
evt["Low"] = 40;
evt["High"] = 50;
evt["Forecast"] = "Cloudy";

// Write the event to the event collector's batch
testEventCollector.Write(evt);

// Commit the event batch to the application database.
testEventCollector.Commit();

中斷連接的事件物件範例

這個範例顯示如何定義事件,但不利用 NSApplicationEventClass 來初始化 Event 物件。

// Initialize the Event object.
Event testEvent = new Event();
testEvent.EventClassName = "StockEvents";

// Use the Event object.
testEvent["StockSymbol"] = "AWKS";
testEvent["StockPrice"] = "58.35";

請參閱

概念

開發裝載的事件提供者
開發非裝載的事件提供者

其他資源

開發自訂事件提供者

說明及資訊

取得 SQL Server 2005 協助