Russian Qt Forum
Сентябрь 30, 2024, 02:22 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Программа не может найти плагин odbc  (Прочитано 8772 раз)
Crazy Sage
Гость
« : Январь 19, 2012, 14:29 »

Пытаюсь подцепиться к *.accdb файлу через Qt, код подключения следующий:

Код:
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
db.setDatabaseName("DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};FIL={MS Access};DBQ="+ui.dbLineEdit->text());
db.open();

У меня все работает, отправляю заказчику - пишет драйвер не найден.
На обоих компах установлен Microsoft Access database engine 2010 (English) скачанный с сайта майкрософта, файлы qsqlodbc4.dll и libqsqltodbc4.a я приложил к проекту вместе с другими dll-ками.
При этом у меня QSqlDatabase::Drivers выдает QSQLITE, QODBC3, QODBC, а у заказчика не выдает вообще ничего.
Единственное что - у меня 32-битная Win7, у него 64-битная, но вроде ведь в эту сторону совместимость должна быть (да и приложение собрано 32-битное)
Что еще может быть не так?
Записан
Странник
Гость
« Ответ #1 : Январь 19, 2012, 14:59 »

я понимаю, что некоторые избитые темы должны быть забиты насмерть.
библиотека qsqlodbc4.dll должна лежать в %YOUR_EXE_DIR%/sqldrivers/qsqlodbc4.dll.
Записан
Crazy Sage
Гость
« Ответ #2 : Январь 19, 2012, 17:14 »

Ай эм сорри. В смысле спасибо большое. За полчаса поиска в гугле этого нюанса не нашел (или просмотрел, что тоже вполне вероятно), потому решил спросить.
Записан
Alex_C
Гость
« Ответ #3 : Июль 25, 2012, 14:27 »

Сейчас пробую подключиться к ODBC, вылетает ошибка:
"[Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию QODBC3: Unable to connect"
Это есть %YOUR_EXE_DIR%/sqldrivers/qsqlodbc4.dll
Подключаюсь
Код
C++ (Qt)
   db = QSqlDatabase::addDatabase("QODBC");
   db.setDatabaseName(QString("Driver={Microsoft Access Driver (*.mdb)};DSN='';DBQ=%1").
                      arg(dataBaseName));
 

тоже самое с SQLite работает без проблем.
« Последнее редактирование: Июль 25, 2012, 14:31 от Alex_C » Записан
CuteBunny
Гость
« Ответ #4 : Июль 25, 2012, 14:34 »

Сейчас пробую подключиться к ODBC, вылетает ошибка:
"[Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию QODBC3: Unable to connect"
Это есть %YOUR_EXE_DIR%/sqldrivers/qsqlodbc4.dll
Подключаюсь
Код
C++ (Qt)
   db = QSqlDatabase::addDatabase("QODBC");
   db.setDatabaseName(QString("Driver={Microsoft Access Driver (*.mdb)};DSN='';DBQ=%1").
                      arg(dataBaseName));
 

тоже самое с SQLite работает без проблем.

DSN='' - лишнее по-моему, т.к. по строке видно, что dsn less connection string.
Записан
Alex_C
Гость
« Ответ #5 : Июль 25, 2012, 14:48 »

Убрал - все тоже.
Записан
Alex_C
Гость
« Ответ #6 : Июль 25, 2012, 15:21 »

Может это быть из-за того, что я драйвер не собира, а взял от сюда
D:\Qt\4.8.1\plugins\sqldrivers\qsqlodbc4.dll
он там вроде как готовый лежит
Записан
Alex_C
Гость
« Ответ #7 : Июль 25, 2012, 15:46 »

Оказывается DRIVER - надо писать большими буквами.... Теперь работает!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.158 секунд. Запросов: 21.