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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QT ODBC Driver как добавить в список видимых драйверов?  (Прочитано 14290 раз)
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]   Вверх
  Печать  
 
Перейти в:  


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