便利な SQL の関数とか、構文とか、その他色々まとめてみる - その7 ( COM を ストアドプロシージャ-から呼び出してみる) -
今回のやることを説明してみる
ストアドプロシージャーから COM を呼び出してみます。
使用する環境を説明してみる
今回は、Microsoft Azure 上の仮想サーバではなく、私の Windows 8.1 Update1、64ビット 上で 動作している SQL Server 2014 です。
試す内容を説明してみる
ストアドから COM を呼び出すには、 OLE オートメーション ストアド プロシージャ (Transact-SQL) を使用します。COM の作成、呼び出し、破棄に関しては下記のメソッドを使用します。
- sp_OACreate (Transact-SQL)
COM の生成 - sp_OAMethod (Transact-SQL
COM のメソッド実行 - sp_OADestroy (Transact-SQL)
COM の破棄
他にもいくつかメソッドはありますが、今回は上記三つのメソッドを使用してみたいと思います。今回は、懐かしの 『 Visual Basic 6.0 』でも非常にお世話になった、フォルダ・ファイルなどを管理する『 Scripting.FileSystemObject 』を使用します。
COM をストアドから使用できるように環境を構成してみる
COM を使用可能にするには、Ole Automation Procedures サーバー構成オプションを設定する必要があります。sp_condigure を使用して有効にします。下記のストアドを SQL Server Management Studio で実行しましょう。
1 2 3 4 5 6 7 8 |
sp_configure 'show advanced options', 1; |
以上で準備完了です。
実際に試してみる
下記のクエリを SQL Server Management Studio で実行してみましょう。( エラー処理はまったくしてませんので、ご注意を。 )
Scripting.FileSystemObject を生成し、フォルダ作成後、ファイルを作成し、Scripting.FileSystemObject のインスタンスを破棄します。
1 2 3 4 5 6 7 8 |
DECLARE @objFileSystemObject INT |
指定した場所にファイルを作成することができました。
おわりに何か書いてみる
最近 COM を使う機会が少なくなっています。昔はサーバーサイドでも COM+ で EnterpriseService を使ったサービスなど開発していたものです。そんなことを思い出しながら、この記事を書きました。