こんにちわ、ブギーと申します。
Win32コンソールアプリケーションのマルチスレッドで、MDBの参照を
行いたいのですが、使い方がよくわからず困っています。
開発環境は以下のとおりです。
Windows2000 Pro
VC 6.0 SP4
Access2000
はじめに、MSDNの「DAO レコードセット: レコードの動的バインディング」を
参考に、以下ようなサブルーチンを作成しました。
データを検索する為のキー情報を、パラメータで渡します。
単体での動作は問題なさそうでした。
BOOL subDataSearch(CString param)
{
CDaoDatabase db;
CString strSql;
db.Open(test.mdb, FALSE, FALSE, ");
CDaoRecordset rs(&db);
/* 検索条件設定 */
strSql = SELECT a FROM b WHERE [c] = \' + param + \'
rs.Open(strSql);
if(FALSE == rs.IsEOF())
{
rs.GetFieldValue(d, var);
:
:
}
rs.Close();
db.Close();
}
このサブルーチンを、2つのスレッドから任意のタイミングで
コールしたいのですが、あとからコールした方の、db.Open()
ところでAccess Violationがおきます。
こういった使い方をする場合の手続きが何か足りないのだとは
思いますが、何をどうしたら良いのか、MSDNをみていても
わかりません。
どなたか、アドバイスをお願い致します。
オープンする前に AfxDaoInit() を呼んでみてください。
こんにちわ、ブギーです。
EIJIさん、ありがとうございます!
解決しました!!
