プロが教える店舗&オフィスのセキュリティ対策術

お世話になります。
vb.net+PostgreSQLでプログラムを作成しております。
接続は「Npgsql.dll」を使用してます。

そこで、プログラムよりファンクションをコールし、
引数で渡した値に一致する結果の取得をしたいのですが、
パターン(2)の様に引数の記述を行うと結果の取得ができません。
どなたか引数で指定した値に一致した結果を取得する方法を
お教え頂ければと思います。

【パターン(1)】正常に結果の取得ができた
CREATE OR REPLACE FUNCTION pr_select_ok() RETURNS SETOF refcursor AS
$BODY$declare
cur refcursor;
条件 numeric;
begin
条件 := 999;

open cur for select 列01, 列02, 列03, 列04 from テーブル where 列01 = 条件 ;
return next cur;
return;

end$BODY$
LANGUAGE 'plpgsql' VOLATILE

【パターン(2)】結果の取得ができない
CREATE OR REPLACE FUNCTION pr_select_ok(条件 numeric) RETURNS SETOF refcursor AS
$BODY$declare
cur refcursor;
begin
open cur for select 列01, 列02, 列03, 列04 from テーブル where 列01 = 条件 ;
return next cur;
return;

end$BODY$
LANGUAGE 'plpgsql' VOLATILE

以上、よろしくお願い致します。

A 回答 (1件)

こんにちは。



とりあえず、サーバ側のOSとPostgresのバージョンを
お書きください。

クライアントはWindowsですよね。

>パターン(2)の様に引数の記述を行うと結果の取得ができません。
どのようにやってどんなエラーが出てなど、詳細を書かれないと
コメントはつきにくいでしょう。

パターン1も2もpsqlとかpgAdminから実行した場合は問題ないのですか?
もしそうならパターン2のVBのプログラムが怪しいので見直してみてください。
第一感はNpgsqlParameterの使い方がまずいのでは?

http://npgsql.projects.postgresql.org/docs/manua …
まずは、ここにサンプルもあるのでご自身で研究してみてください。
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます。
問題は全て解決いたしました。
お騒がせして申し訳ありませんでした。

お礼日時:2009/06/11 22:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!