- PR -

ODBC経由でストアドの検索結果を受け取りたい

1
投稿者投稿内容
a-san
ベテラン
会議室デビュー日: 2004/06/01
投稿数: 53
投稿日時: 2005-10-12 18:07
ODBC経由でストアドの検索結果を受け取りたいのですがやり方がよくわかりません。
検索結果は複数です。
配列で返す場合はストアドは書けるのですが、それをODBCの SQLBindParameter で
取り出すやり方がわかりません。
検索結果(カーソル?)をそのまま返そうとした場合、今度はストアドの書き方がよくわかりません。
どう書けばよいのでしょうか?
Oracle10g
Windows2000
アリババ
会議室デビュー日: 2002/10/28
投稿数: 12
投稿日時: 2005-10-18 11:21

パッケージ側では
CREATE OR REPLACE PACKAGE TEST AS
TYPE refcur IS REF CURSOR;
FUNCTION TEST1 ( CURSOR OUT refcur ) RETURN INTEGER;
END;
ファンクション内
FUNCTION TEST1 ( CURSOR OUT refcur ) RETURN INTEGER IS
BEGIN
open CURSOR for SELECT * FROM TABLE1;
RETURN 0;
EXCEPTION
WHEN OTHERS THEN
RETURN -1;
END TEST1;
でカーソルにSQLの結果を渡せます。

ODBCではやったことがないので詳しくはかけませんがoo4oやODP.NETと同じようだと思いますのでoo4o・VB6ベースで書きます。
パラメーターのセットは現在やられているのと同じですが、
カーソルを受け取るパラメータは
xxx.parameters(1).name="CURSOR"
xxx.parameters(1).Direction=ORAPARM_OUTPUT
xxx.parameters(1).Type=ORATYPE_CURSOR
で設定すればいいです。ポイントはORATYPE_CURSORだと思います。
オラクルDynasetに代入するのは
Set oraDynaset = xxx.Parameters("CURSOR").Value
でいけます。
残りは普通にできます。

業務上の制約があってソースをそのまま載せることは出来ないので
イメージをつかんでもらえば幸いです。
間違っている箇所はごめんなさいです。





1

スキルアップ/キャリアアップ(JOB@IT)