ADO ストアドのパラメータにNullをセットするには?


どみ  2005-02-08 08:08:51  No: 56320

VC++6.0 でADOを使用してSQLのストアドプロシージャを実行しようとしています。
その際、コマンドオブジェクトを作成し、CommandTextにストアド名を、CommandTypeにはadCmdStoredProcを設定。
次にパラメータオブジェクトを作成してそれをAppendしていますが、
Nullのセットの仕方が分かりません。

_CommandPtr pCmd = NULL;
hr = pCmd.CreateInstance( __uuidof( Command));
pCmd->ActiveConnection = pConn;
pCmd->CommandText = "ストアド名";
pCmd->CommandType = adCmdStoredProc; 
_ParameterPtr pParam;

pParam = pCmd->CreateParameter("Param",adVarWChar,adParamInput,5,"abcde");

hr = pCmd->Parameters->Append( pParam );

pCmd->Execute( NULL, NULL, adCmdStoredProc);

上記のソースなんですがCreateParameterでNullをパラメータにしたいのですが、上手くいきません。
adVarWCharをadEmptyにしたり、5,"abcde"をゼロやNullにしてもエラーが発生してしまいます。(Unknown error 0x800A0E7C)

C++でのADOは不慣れの為、行き詰っております。
どなたか解決方法などご存知の方がいましたら、
ぜひとも回答願えないでしょうか。
宜しくお願いします。


sujiko  2005-02-15 01:22:54  No: 56321

やっていないのでなんとも言えませんが,
こんな感じでできるのではないでしょうか?

_variant_t vtFld;
vtFld.vt = VT_NULL;

pParam = pCmd->CreateParameter("Param",adVarWChar,adParamInput,5,vtFld);


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加