- PR -

Executeメソッドの完了待ち合わせについて

1
投稿者投稿内容
未記入
会議室デビュー日: 2007/01/30
投稿数: 1
投稿日時: 2007-01-30 13:44
テーブルの書込みおよび読込みを行うDLLを作成したのですが
書込み処理直後に読込み処理を実行するとテーブルのデータを
取得できない事があります。
1.アプリAのDLLでテーブル書込処理(nレコード)を実施
2.アプリAからアプリBに書込処理実施を通知
3.アプリBのDLLでテーブル読込処理(nレコード)を実施
  ⇒この時に書込まれていないレコードが存在する

「ExecuteCompleteイベントを使用すれば完了を待ち合わせられる」
という事までは理解できたのですが実現方法がわかりません。
どなたか教えて頂けると助かります。

現状ソースは下記のようになっています。
extern "C" int __declspec(dllexport) __stdcall ABCDE( )
{
int iRet = 0;
_ConnectionPtr ptrConnect;
_RecordsetPtr ptrRecordset;
_CommandPtr ptrCommand;
_bstr_t strSQL;
_variant_t varNull;

::CoInitialize(NULL);

ptrConnect.CreateInstance(__uuidof(Connection));
ptrConnect->Open( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = xxxxx.mdb"
, "", "", adConnectUnspecified );

ptrRecordset.CreateInstance(__uuidof(Recordset));
ptrCommand.CreateInstance(__uuidof(Command));

varNull.vt = VT_ERROR;
varNull.scode = DISP_E_PARAMNOTFOUND;

strSQL = "update txxxxxTbl set sxxxxxSts = '1' where(lxxxxxNo = 1)";
ptrCommand->ActiveConnection = ptrConnect;
ptrCommand->CommandText = strSQL;
ptrRecordset->PutRefSource( ptrCommand );
ptrCommand->Execute( NULL, NULL, adCmdText );

// ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
// ここでExecuteの完了を待ち合わせたい
// ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆

ptrCommand.Release();
ptrRecordset.Release();

ptrConnect->Close();
ptrConnect.Release();

::CoUninitialize();

return iRet;
}

よろしくお願い致します。
1

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