Qt собран вместе с ODBC c помощью VS2010.
В коде:
C++ (Qt)
...
{
QSqlDatabase database = QSqlDatabase::addDatabase("QODBC", "ODBC_DIMEX");
database.setHostName(ui->ODBC_host_line_edit->text());
database.setDatabaseName(ui->ODBC_DB_name_line_edit->text());
database.setUserName(ui->ODBC_login_line_edit->text());
database.setPassword(ui->ODBC_password_line_edit->text());
if ( !database.open() )
{
ui->status_label->setText(trUtf8("<b style='color:red'>Ошибка открытия базы данных ODBC:DIMEX</b>"));
return;
}
ODBC_connected = true;
}
...
При открытии выдаёт в консоль приложения вот такую простыню:
Exception at 0x759d9617, code: 0xe06d7363: C++ exception, flags=0x1 (execution cannot be continued)
at:
0 KERNELBASE!RaiseException 0x759d9617
1 F:\dd\vctools\crt_bld\self_x86\crt\prebuild\eh\throw.cpp:161 (OdbcFb!_CxxThrowException) 0x100b927f
2 OdbcFb!IscDbcLibrary::IscStatement::prepareStatement 0x10028a5e
3 OdbcFb!IscDbcLibrary::IscOdbcStatement::prepareStatement 0x1001fc45
4 OdbcFb!OdbcJdbcLibrary::OdbcStatement::sqlPrepare 0x1007e036
5 OdbcFb!OdbcJdbcLibrary::OdbcStatement::sqlExecDirect 0x100832cf
6 OdbcFb!SQLExecDirectW 0x1004d1ec
7 ODBC32!VRetrieveDriverErrorsRowCol 0x6e75e376
8 ODBC32!SQLExecDirectW 0x6e78b2e0
9 C:\Qt\2010.05\qt\src\sql\drivers\odbc\qsql_odbc.cpp:1993 (QtSqld4!QODBCDriverPrivate::checkUnicode) 0x6ec768aa
10 C:\Qt\2010.05\qt\src\sql\drivers\odbc\qsql_odbc.cpp:1901 (QtSqld4!QODBCDriver::open) 0x6ec76244
11 C:\Qt\2010.05\qt\src\sql\kernel\qsqldatabase.cpp:846 (QtSqld4!QSqlDatabase::open) 0x6ec5a694
...
Какие-то соединения, выполнение которых не может быть продолжено
При этом дальнейшие запросы выполняются нормально и без проблем.
Что посоветуете по этому поводу? Вдруг программка навернётся в будущем?
upd: выяснил, что исключение кидал FireBird ODBC Connector. Хотел его откомпилировать из исходников для себя, но умер компилятор =)))
1>c:\downloads\software\odbcfb-source-2.0.0151\odbcjdbc\odbcstatement.cpp(1484): fatal error C1001: An internal error has occurred in the compiler.
1> (compiler file 'f:\dd\vctools\compiler\utc\src\p2\x86\fpreg.c', line 949)
ужас )))
upd2: Удивительно, но под DEBUG оно собралось =)