Transact-SQL での OLE オートメーション オブジェクト
適用対象:SQL Server
Transact-SQL には、Transact-SQL バッチ、ストアド プロシージャ、およびトリガーの中で OLE オートメーション オブジェクトを参照できるいくつかのシステム ストアド プロシージャが組み込まれています。 これらのシステム ストアド プロシージャは拡張ストアド プロシージャとして動作します。また、これらのストアド プロシージャから実行される OLE オートメーション オブジェクトは、 SQL Server データベース エンジン アドレス空間の中で拡張ストアド プロシージャと同じように動作します。
OLE オートメーション ストアド プロシージャを使用すると、Transact-SQL バッチから SQL-DMO オブジェクトやカスタム OLE オートメーション オブジェクト (IDispatch インターフェイスを公開しているオブジェクトなど) を参照できます。 Microsoft Visual Basic を使用して作成するカスタム インプロセス OLE サーバーには、Class_Initialize サブルーチンと Class_Terminate サブルーチン用に (On Error GoTo ステートメントで指定された) エラー ハンドラーを実装する必要があります。 Class_Initialize サブルーチンと Class_Terminate サブルーチンで処理されないエラーが発生すると、 データベース エンジンのインスタンスでのアクセス違反など、予期しないエラーが発生する可能性があります。 また、その他のサブルーチン用のエラー ハンドラーも用意しておくことをお勧めします。
Transact-SQL で OLE オートメーション オブジェクトを使用する場合は、まず、sp_OACreate
システム ストアド プロシージャを呼び出して、データベース エンジンのインスタンスのアドレス空間にそのオブジェクトのインスタンスを作成します。
オブジェクトのインスタンスを作成した後、次のストアド プロシージャを呼び出してオブジェクトのプロパティ、メソッド、およびエラー情報を処理します。
sp_OAGetProperty
はプロパティの値を取得します。sp_OASetProperty
はプロパティの値を設定します。sp_OAMethod
はメソッドを呼び出します。sp_OAGetErrorInfo
は最新のエラー情報を取得します。
オブジェクトが必要なくなったら、 sp_OADestroy
を呼び出し、 sp_OACreate
で作成したオブジェクトのインスタンスの割り当てを解除します。
OLE オートメーション オブジェクトは、プロパティ値とメソッドを使用してデータを返します。 sp_OAGetProperty
および sp_OAMethod
プロシージャは、これらのデータ値を結果セットの形で返します。
OLE オートメーション オブジェクトのスコープはバッチです。 そのオブジェクトへのすべての参照は、単一のバッチ、ストアド プロシージャ、またはトリガー内に含まれている必要があります。
SQL Server の OLE オートメーション オブジェクトからオブジェクトを参照する場合、参照するオブジェクトに含まれる他のオブジェクトも参照できます。 たとえば、SQL-DMO の SQLServer オブジェクトを使用すると、参照先のサーバーに含まれているデータベースとテーブルを参照できます。
関連項目
- オブジェクト階層構文 (Transact-SQL)
- セキュリティ構成
- sp_OACreate (Transact-SQL)
- sp_OAGetProperty (Transact-SQL)
- sp_OASetProperty (Transact-SQL)
- sp_OAMethod (Transact-SQL)
- sp_OAGetErrorInfo (Transact-SQL)
- sp_OADestroy (Transact-SQL)
次のステップ
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示