• 締切済み

PostgreSQL(8.4.2)のユーザ定義関数(ストアドプロシージ

PostgreSQL(8.4.2)のユーザ定義関数(ストアドプロシージャ)を、 ODBC経由でVisualStudio2005から利用したいのですが、 サーバーエクスプローラーからユーザ定義関数を参照することが出来なくて悩んでいます。 ユーザ定義関数はpgAdminIIIで作成しました。 cse(Common SQL Environment)などのフリーのツールからは問題なく参照できます。 VisualStudioにユーザ定義関数として認識させるための何かおまじない的な物が必要なのでしょうか。 それともPostgreSQLとVisualStudioとの相性が悪いのでしょうか。 なおユーザ定義関数以外であるテーブルやビューは、 サーバーエクスプローラーから参照できます。

みんなの回答

回答No.1

古いディスプレイを使っているためか、添付画像がよく見えない状況での回答です。そのため、的を外しているかもしれませんが。。。 PostgreSQLで定義した関数は、あくまでも”SQL中でだけ”利用できる関数です。pgAdminIIIで表示されるのは、PostgreSQLで定義された関数ですから、表示されて当然です。 Visial Studioで管理されるユーザ定義関数は、Visual C/C++ や Visual Basic の命令文レベルで使用できる関数です。

1092eto
質問者

お礼

回答ありがとうございます。 もちろんPostgreのストアドプロシージャはCソースの一関数としては呼ぶことは出来ません。 ソース中にSQL文を直接埋め込んでもやりたいことは実現できるのですが、 なるべくソース中にSQLを埋めたくなかったのでストアドプロシージャを利用したいと考えました。 VisualStudioではODBCドライバ経由で、 テーブルやビュー、ストアドプロシージャにアクセス出来ます。 しかしここで問題が発生しています。 ウィザード上で利用したいストアドプロシージャが認識されずに 何も表示されません。 最初はストアドプロシージャの定義がおかしいと思ったので、 VisualStuidでは認識できないと思いました。 そこでSQLを実行できる他のツールでPostgreのDBに接続しましたが、 問題なくストアドプロシージャを認識し、実行結果も得ることが出来ました。 したがってVisualStudioでは何か手続きが必要なのか?もしくは認識できないのでは?と思い質問に至りました。 VisualStudioに同梱のSQLServerとかでは問題なくストアドプロシージャを認識できるのですが、 Postgreでは認識できていなかったので相性の問題かなとも思いました。 うまくまとまらずすみません。 以上です。宜しくお願いします。

関連するQ&A