2012-02-21 4 views
0

Я создал новое приложение с QtSDK (последняя доступная версия) и эти программы используют ODBC для подключения к базе данных, но когда я пытаюсь добавить базу данных я получил ошибку:qt4 не загружены драйвера ODBC

QSqlDatabase: QODBC driver not loaded 
QSqlDatabase: available drivers: QSQLITE 

Когда я делаю:

QStringList driversList = QSqlDatabase::drivers(); 
qDebug() << "drivers list= " << driversList; 

Я говорю, что у меня есть только qsqlite в списке. После первого появления этой ошибки я вспомнил, что на этом компьютере я не создал плагин odbc, поэтому пошел в плагины и сделал «qmake; name». После этого я получил qsqlodbc4.dll и «qsqlodbc.intermediate.manifest»

Так что это было неожиданностью, когда я создал папку «sqldrivers» в той же папке, что и .exe, скопировал эти 2 файла odbc и по-прежнему получил такую ​​же ошибку. Программа, созданная с помощью QtCreator и имеющая тот же список драйверов (qsqlite) при запуске оттуда и непосредственно exe. Кто-нибудь может sugest где искать дальше?

Когда я смотрю список процессов, я вижу, что эта программа работает как 32bit ("program.exe * 32"). А windows 64, может быть, есть проблема с загрузкой?

+0

При запуске из QtCreator: Запуск D: \ Projects \ Program \ Program-встроенный имитатор-Simulator_Qt_for_Visual_Studio_2005__Qt_SDK__Release \ релиз \ program.exe (только в случае, если это может помочь) – Dainius

+0

Когда копия program.exe (кварты DLL файлы и sqldrivers/qsqlodbc4 .dll), чтобы запустить flash-драйвер и запустить там тот же список драйверов (qsqlite), но если я попробую запустить его на другом компьютере, у меня есть пустой список драйверов. Для меня это похоже на попытку загрузки из какой-то специальной папки, а не текущей папки программы. – Dainius

ответ

0

Ый все QtSDK, снова устанавливается только 4.7.4 версия с MS Visual Studio 2005 (источник и рабочий стол). Создайте драйверы sql, и теперь они работают. Мои вопросы будут заключаться в том, что когда я скомпилировал первый раз, было несколько разных версий, и драйверы были плохие (как-то), поэтому они не загружались.

0

я не знаком с ODBC, но я проблема, связанная с MySQL когда забыл показать на Qt lib_mysql.lib

+0

Я видел, что это была основная проблема с драйверами mysql, но я нигде не читал о каких-либо специальных библиотеках odbc. И не помню каких-либо специальных libs при создании аналогичной программы с Qt3 и odbc. – Dainius

+0

У вас есть '% QTDIR% \ plugins \ sqldrivers \ qsqlodbc4.dll'? сначала это dll для версии Release, вы используете то же самое; Во-вторых, вы загружаете QtSql4.dll? – triclosan

+0

Оба Да. И когда QtSql4.dll отсутствует, программа показывает ошибку очень рано. Я даже попробовал QTPLUGIN + = qsqlodbc4 и поместил файл qsqlodbc4.lib (и exp) в папку lib, но список драйверов все тот же. – Dainius

Смежные вопросы