Windows7でDelphi2007を使用しています。
主題通りなのですが、TstoredProcで次のレコードを参照するにはどうしたらよいでしょうか。
いろいろなホームページを見てきたのですが答えの見つかる情報はありませんでした。
TstoredProcは、使ったことがないのですが、
Nextメソッドで、データセット内の次のレコードに移動できませんか?
igy さん
返信遅くなりました。
Nextメソッド使用するとなぜかデータセットが閉じているというメッセージがでてしまうんです。
Open メソッドを呼び出すか,Active プロパティを true に設定しましたか?
OpenメソッドもActiveプロパティも
「カーソルハンドルの作成でエラーが発生しました」
と表示されてしまいます。
with StoredProc2 do
begin
Prepare;
ParamByName('A').Value := A;
ExecProc;
end;
上記のように記述しています。
> ExecProc;
のかわりに Open メソッドを呼び出すか,Active プロパティを true に設定した場合も、同じですか?
> Open メソッドを呼び出すか,Active プロパティを true に設定した場合も、同じですか?
同じです。
ちなみに、ストアド プロシージャから結果セットは返してますか?
はい。
ストアドプロシージャは問題ありません。
上記記述の方法でレコードの一番上だけは取得できますが、次のレコードに行く記述がわかりません。
C++Builderですが、以下で処理できています。
StoredProc1->Parameters->ParamByName("@A")->Value = "A";
StoredProc1->Active = true;
while(!StoredProc1->Eof) {
// 処理
StoredProc1->Next();
}
StoredProc1->Active = false;
Active=Trueにするとデータセットが閉じていますと表示されてしまいます。
遅くなりましたが、Queryコンポーネントからストアドプロシージャを呼び出すことによって解決しました。
ツイート | ![]() |