Russian Qt Forum
Июня 09, 2025, 08:00 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QT ODBC Driver как добавить в список видимых драйверов?  (Прочитано 14503 раз)
Jokser
Гость
« : Мая 27, 2011, 17:19 »

Установил Qt SDK 1.1.1. Операционка - Windows XP. Есть база на MS SQL Server 2008, с которой нужно работать. Прочитал, что нужно использовать драйвер ODBC. Однако Qt его не нашел.
Код:
qDebug() << QSqlDatabase::drivers();
Видит только QSQLite

Я прочитал кучу тем на эту проблему. Требуется собрать плагин из %QTDIR%\src\plugins\sqldrivers\odbc
Однако у меня таких папок просто нет. Я откопал только QtSDK\Desktop\Qt\4.7.3\mingw\plugins\sqldrivers
Где у меня 2 dllки для sqlite.
И QtSDK\Desktop\Qt\4.7.3\mingw\include\QtSql, где есть qsql_odbc.h . Но что с ним делать непонятно.

Пожалуйста, помогите. Как же собрать и запихать этот ODBC драйвер?

И попутный вопрос. Как использовать только один коннект к базе - т.е. один объект QSqlDatabase db для всех диалоговых окон? Создать "connect.h" где поместить класс со static QSqlDatabase db с функцией коннекта там же? и делать include "connect.h" везде, где используется работа с БД?
Записан
Странник
Гость
« Ответ #1 : Мая 27, 2011, 19:16 »

странные пути там..ты уверен, что исходники библиотеки у тебя стоят? проверь QtSDK\Desktop\Qt\4.7.3\mingw\src\plugins\sqldrivers\odbc. собирается элементарно.

для использования только одного коннекта к базе никаких выкрутасов не нужно. один раз, например в main() или конструкторе главного окна:
Код:
QSqlDatabase database = QSqlDatabase::addDatabase("QODBC3");
database.setDatabaseName("Driver={SQL Server}; Server=SERVER_NAME; Database=DATABASE_NAME; Trusted_Connection=yes;");

database.open();

это соединение будет в дальнейшем использоваться по умолчанию при всех твоих обращениях к серверу БД.
"Driver={SQL Server}; Server=SERVER_NAME; Database=DATABASE_NAME; Trusted_Connection=yes;" замени на свою строку коннекта.
Записан
Jokser
Гость
« Ответ #2 : Мая 27, 2011, 19:25 »

Папки src у меня нигде нет. Я устанавливал онлайн-инсталлятором для Windows. Я так понимаю, сорцы нужно отдельно докачать? только где? Я нашел репозиторий qt, но он естественно под Linux.
Записан
Странник
Гость
« Ответ #3 : Мая 27, 2011, 22:15 »

в данный момент SDK у меня не стоит, предпочитаю ставить частями. но насколько помню, есть у них онлайн-апдейтер с возможностью выбора устанавливаемых компонентов (в главном меню есть ярлык). через него сорцы выкачать можно.
а вообще, они находятся здесь: http://get.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.7.3.zip
« Последнее редактирование: Мая 27, 2011, 22:18 от Странник » Записан
Jokser
Гость
« Ответ #4 : Мая 28, 2011, 00:23 »

Итак, все получилось! Спасибо Страннику.
Вкратце расскажу по шагам для всех, что нужно делать, чтобы облегчить жизнь будущим людям, которые тоже на этом споткнутся.

1. После установки, необходимо проверить наличие папки src в директориях Qt. Если ее нет, то заходим в SDKMaintanceTools. Далее Miscellaneous->Qt Sources и ставим галочку напротив Qt 4.7.3 Sources. Далее next и ждем закачки сорцов. Лично у меня они установились в QtSdk/QtSources.

2.  Теперь, пропишем пути к qmake и mingw32-make в переменных средах:
Идем: Мой Компьютер->Дополнительно->Переменные Среды. Находим переменную PATH. Добавляем туда 2 пути. Один к qmake:
Лично у меня он такой: QtSDK\Desktop\Qt\4.7.3\mingw\bin
И к mingw32-make: QtSDK\mingw\bin

3. Заходим в cmd и идем к заветной папке с драйвером odbc : QtSDK\QtSources\4.7.3\src\plugins\sqldrivers\odbc
Далее пишем:
Код:
qmake odbc.pro
mingw32-make
Начнется компиляция драйвера. Ждем несколько секунд.

4. Должна появится папка Debug, откуда забираем все файлы и копируем к нам в sqldrivers. У меня путь такой:
QtSDK\Desktop\Qt\4.7.3\mingw\plugins\sqldrivers

Если все сделали правильно, драйвер ODBC должен появится в списке доступных драйверов в QSqlDatabase.

Для других драйверов все делается почти аналогичным образом, только компилируются с другими параметрами, подробнее здесь: http://doc.crossplatform.ru/qt/4.3.2/sql-driver.html
Записан
Странник
Гость
« Ответ #5 : Мая 30, 2011, 14:02 »

драйвер нужно собрать и в debug, и в release. итого 4 файла:
debug: qsqlodbcd4.a, qsqlodbcd4.dll
release: qsqlodbc4.a, qsqlodbc4.dll
Записан
KBAC
Гость
« Ответ #6 : Января 01, 2012, 21:39 »

"Идем: Мой Компьютер->Дополнительно->Переменные Среды. Находим переменную PATH."
Что-то не понятно как зайти из моего компьютера (я так понимаю через Windows проводник надо это делать) в "дополнительно".
П.с. лаконичная версия моего сообщения:"Какой Мой Компьютер Блеать?".
Записан
KBAC
Гость
« Ответ #7 : Января 01, 2012, 22:20 »

Как написать в командной строке, чтобы собрать релизную версию dll?
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #8 : Января 02, 2012, 09:01 »

>>Что-то не понятно как зайти из моего компьютера
По иконке "Мой компьютер" (что на рабочем столе), щёлкаешь правой кнопкой мыши, появляется контекстное меню, в нём выбираешь пункт "свойства". Появится диалоговое окно, а на нём вкладка "Дополнительно"
Записан

Юра.
KBAC
Гость
« Ответ #9 : Января 02, 2012, 15:10 »

спс
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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