У меня проблема состоит в том, что при попытке подключиться к БД Access при создании нескольких потоков, программа вылетает.
void InitDB()
{
CDaoDatabase db;
CDaoRecordset recset(&db);
db.Open("c:\\db1.mdb");
recset.Open(AFX_DAO_USE_DEFAULT_TYPE,"SELECT * FROM Table",NULL);
recset.Close();
db.Close();
}
Если запускать эту ф-ю без создания потоков, то все нормально работает.
Как только создаю потоки вида:
....
for(int i=0,i<10,i++)
_beginthreadex(NULL, 0, FuncThread,0, 0, NULL);
....
....
....
unsigned int __stdcall FuncThread(LPVOID tParam)
{
InitDB();
}
программа вылетает, в чем беда не понимаю

может кто уже с этим сталкивался...
Здравствуйте, metod, Вы писали:
M>У меня проблема состоит в том, что при попытке подключиться к БД Access при создании нескольких потоков, программа вылетает.
M>M>void InitDB()
M>{
M> CDaoDatabase db;
M> CDaoRecordset recset(&db);
M> db.Open("c:\\db1.mdb");
M> recset.Open(AFX_DAO_USE_DEFAULT_TYPE,"SELECT * FROM Table",NULL);
M> recset.Close();
M> db.Close();
M>}
M>
M>Если запускать эту ф-ю без создания потоков, то все нормально работает.
M>Как только создаю потоки вида:
M>M>....
M>for(int i=0,i<10,i++)
M>_beginthreadex(NULL, 0, FuncThread,0, 0, NULL);
M>....
M>....
M>....
M>unsigned int __stdcall FuncThread(LPVOID tParam)
M>{
M> InitDB();
M>}
M>
M>программа вылетает, в чем беда не понимаю
M>может кто уже с этим сталкивался...
знать бы текст (номер) ошибки

может не инициализирован COM в этоих потоках,
может совместный доступ к одному файлу MDB не правильно задан,
может потоковая модель не совместима с драйверами Jet