Callで呼び出したストアドの戻り値を取得するには – プログラミング – Home

Callで呼び出したストアドの戻り値を...
 
通知
すべてクリア

Callで呼び出したストアドの戻り値を取得するには


四季
 四季
(@四季)
ゲスト
結合: 24年前
投稿: 3
Topic starter  

cDataBaseクラスを使用し、ExecuteSQLでストアドを実行することまでは出来るのですが、
そのストアドの戻り値(return -1)とかの値の取得方法がわかりません。
お教えいただけないでしょうか
VC6、SqlServer7.0です。


引用解決済
トピックタグ
材木屋
 材木屋
(@材木屋)
ゲスト
結合: 24年前
投稿: 9
 

CDBExceptionに設定されるように、例外をHookしましょう。


返信引用
四季
 四季
(@四季)
ゲスト
結合: 24年前
投稿: 3
Topic starter  

すいません初心者なので今ひとつ判らないのですが、アドバイスいただいたのは
try
{
m_Database.ExecuteSQL (sSQL); //ストアドプロシジャ実行
}
catch(CDBException* e)
{
//エラー
}
ということでしょうか?
これだと、ストアド自体がエラーにならないとキャッチできないんです。
return -1とかで返しても通りません


返信引用
材木屋
 材木屋
(@材木屋)
ゲスト
結合: 24年前
投稿: 9
 

要点をとりちがえていました。
Win32Api SQLError()とかで取得してみてください。


返信引用
四季
 四季
(@四季)
ゲスト
結合: 24年前
投稿: 3
Topic starter  

うーーーーん
SQLError()ですか。
使い方がよくわからないです。
ストアドには CALL ストアド名(引数)で渡せるのですが
そのストアドの結果は 変数 = CALL ストアド名(引数)では
だめなのですかね?


返信引用
材木屋
 材木屋
(@材木屋)
ゲスト
結合: 24年前
投稿: 9
 

> そのストアドの結果は 変数 = CALL ストアド名(引数)では
> だめなのですかね?

Win32Api SQLExecDirect()でお望みの形式に近いと思いますよ。
実際、MFC::ExecuteSQL()も内部ではこの関数を使用しています。

サンプルはMFCのソースコードにありますので。お望みの形式で動作するように、
自身でExecuteSQL()を作成した方がよいのでは、、、


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました