• ベストアンサー

外部プログラムを実行する方法について

お世話になります。 データが更新された段階で、外部プログラム(xxx.exe)を実行したいと考えております。 おそらく、トリガを利用すれば可能かと思い調査しておりますが、 どのようにして外部プログラムを実行すればよいか分かっておりません。 ご存知の方、ご教示頂けないでしょうか。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • utakataXEX
  • ベストアンサー率69% (711/1018)
回答No.1

もう10日以上前なのでご覧になっていないかも、ですが。 .exeと言う事はDBサーバーはWindowsですね。 SQL Serverでは標準で使える機能ではありますが(推奨はされていませんが)、PostgreSQLのトリガーで使用するPL/pgSQLでは面倒な手順が必要です。 (商用のORACLEの場合も同様) まず、使うのはPL/pgSQL以外に、この場合、C言語も必要です。 C言語関数 http://www.postgresql.jp/document/8.3/html/xfunc-c.html 但し、ご自分で検索されるとわかると思いますが、ほぼ全てのサンプルはUnix/Linuxです。 (と言うかWindowsの例は探せませんでした) DBを操作するアプリケーションを作成されているのであれば、そちらで行った方がよいと思います。 私自身は、PostgreSQLではありませんが、以前、ORACLEで外部コマンドを実行する処理を作った事があります。 (方法は上記リンクと似たような感じで、やはりC言語でライブラリをコンパイルする必要があります) Cに関しては初心者ではありませんが、正直、サンプルレベル以上の、仕事で使えるレベルにするにはかなりハマるな、と思いました。 Windowsだと権限周りも面倒そうなので、更にハマる事、必至だと思います。 (何より事例が少ない) それと、もし 「DBサーバーはUnix/Linuxだが実行したいexeはリモートのWindows上」 と言う事でしたら、もはやトリガ内で何かする、と言うのはあり得ません。 (私が上司なら即座に却下します)

sunshine777
質問者

お礼

utakataXEX様 ご回答ありがとう御座いました。 やはり簡単には実現できそうに無いのですね。 私もあれから調査を継続しておりましたが、中々良い案が見当たりませんでした。 今回は複数の種類のプログラムからDBを更新する構成であり、更新後の処理を1か所で行いたいという狙いがありましたが、今回はDBを更新するプログラム側で、更新後の処理を行うことにいたします。 ありがとうございました。

関連するQ&A