Share via


Transact-SQL 中的 OLE Automation 物件

Transact-SQL 包含多個系統預存程序,可讓您在 Transact-SQL 批次、預存程序與觸發程序中參考 OLE Automation 物件。這些系統預存程序以擴充預存程序來執行,而透過預存程序執行的 OLE Automation 物件在 SQL Server Database Engine 執行個體的位址空間內的執行方式與擴充預存程序的執行方式相同。

OLE Automation 預存程序可讓 Transact-SQL 批次參考 SQL DMO 物件,並自訂 OLE Automation 物件,例如公開 IDispatch 介面的物件。使用 MicrosoftVisual Basic 所建立的自訂、處理中的 OLE 伺服器內必須具有 Class_InitializeClass_Terminate 副程式的錯誤處理常式 (Error Handler) (請使用 On Error GoTo 陳述式來指定此錯誤處理常式)。Class_InitializeClass_Terminate 副程式中的未處理錯誤將導致未預期的錯誤,例如Database Engine執行個體中的存取違規 (Access Violation)。對於其他的副程式,我們也建議您使用錯誤處理常式。

在 Transact-SQL 中使用 OLE Automation 物件的第一個步驟是呼叫 sp_OACreate 系統預存程序,以便在Database Engine執行個體的位址空間中建立物件的執行個體。

在建立物件的執行個體之後,請呼叫下列預存程序來使用物件的相關屬性、方法與錯誤資訊:

  • sp_OAGetProperty 取得屬性的值。

  • sp_OASetProperty 設定屬性的值。

  • sp_OAMethod 呼叫一個方法。

  • sp_OAGetErrorInfo 取得最近的錯誤資訊。

當您不再需要物件時,可呼叫 sp_OADestroy 來將使用 sp_OACreate 所建立的物件執行個體取消配置。

OLE Automation 物件透過屬性值與方法來傳回資料。sp_OAGetPropertysp_OAMethod 以結果集的形式傳回這些資料值。

OLE Automation 物件的範圍是一個批次。該物件的所有參考都必須包含於一個批次、預存程序或觸發程序內。

在參考物件時,SQL Server OLE Automation 物件支援將參考的物件跨越它所包含的其他物件。例如,在使用 SQL-DMO SQLServer 物件時,您可參考至該伺服器所包含的資料庫與資料表。