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 介面的物件。 使用 Microsoft Visual Basic 所建立的自訂、處理中的 OLE 伺服器內必須具有 Class_Initialize 和 Class_Terminate 副程式的錯誤處理常式 (Error Handler) (請使用 On Error GoTo 陳述式來指定此錯誤處理常式)。 Class_Initialize 與 Class_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_OAGetProperty 和 sp_OAMethod 會以結果集形式傳回這些資料值。
OLE Automation 物件的範圍是一個批次。 該物件的所有參考都必須包含於一個批次、預存程序或觸發程序內。
在參考物件時,SQL Server OLE Automation 物件支援將參考的物件跨越它所包含的其他物件。 例如,在使用 SQL-DMO SQLServer 物件時,您可參考至該伺服器所包含的資料庫與資料表。
相關內容
sp_OAGetProperty (Transact-SQL)
sp_OASetProperty (Transact-SQL)