Всем доброго времени суток.
разбираюсь с IBPP и наткнулся на такую вещь
в теством приложении, подключаюсь к БД, выполняю запросы в основном
потоке - все ОК.
пытаюсь выполнить те же самые запросы из треда (в треде делаю отдельное
подключение к БД, стартую транзакции и т.д.)
вылетает ошибка:
what(): *** IBPP::SQLException ***
Context: Statement::Prepare( select * from sometable )
Message: isc_dsql_prepare failed
SQL Message : -901
Unsuccessful execution caused by system error that does not preclude
successful execution of subsequent statements
Engine Code : 335544332
Engine Message :
invalid transaction handle (expecting explicit transaction start)
исходный код :
"тредовая" процедура
static unsigned int __stdcall thrproc2(void *thrnum) {
IBPP::Database thrdb;
static unsigned int __stdcall thrproc2(void *thrnum) {
thrdb = IBPP::DatabaseFactory(ServerName, DbName, UserName, Password,
"", "WIN1251", "PAGE_SIZE 8192 DEFAULT CHARACTER SET WIN1251");
if (thrdb->Connected() ) {cout << "Thrdb connected" << endl; }
IBPP::Transaction tr3 = IBPP::TransactionFactory(thrdb, IBPP::amWrite,
IBPP::ilConcurrency, IBPP::lrWait);
IBPP::Statement st3 = IBPP::StatementFactory(mainDB, tr3);
tr3->Start();
st3->Execute("select * from sometable");
}
подскажите плиз в чем может быть дело и куда смотреть?
FB 2.5. RC3 (пробовал на 2.0.6 - такая же ошибка)
win XP
система сборки: Eclipse + mingw
Иван.