cDataBaseクラスを使用し、ExecuteSQLでストアドを実行することまでは出来るのですが、
そのストアドの戻り値(return -1)とかの値の取得方法がわかりません。
お教えいただけないでしょうか
VC6、SqlServer7.0です。
CDBExceptionに設定されるように、例外をHookしましょう。
すいません初心者なので今ひとつ判らないのですが、アドバイスいただいたのは
try
{
m_Database.ExecuteSQL (sSQL); //ストアドプロシジャ実行
}
catch(CDBException* e)
{
//エラー
}
ということでしょうか?
これだと、ストアド自体がエラーにならないとキャッチできないんです。
return -1とかで返しても通りません
要点をとりちがえていました。
Win32Api SQLError()とかで取得してみてください。
うーーーーん
SQLError()ですか。
使い方がよくわからないです。
ストアドには CALL ストアド名(引数)で渡せるのですが
そのストアドの結果は 変数 = CALL ストアド名(引数)では
だめなのですかね?
> そのストアドの結果は 変数 = CALL ストアド名(引数)では
> だめなのですかね?
Win32Api SQLExecDirect()でお望みの形式に近いと思いますよ。
実際、MFC::ExecuteSQL()も内部ではこの関数を使用しています。
サンプルはMFCのソースコードにありますので。お望みの形式で動作するように、
自身でExecuteSQL()を作成した方がよいのでは、、、