Qt - Драйверы для работы с БД (QMYSQL, QIBASE, QPSQL)
ฝัง
- เผยแพร่เมื่อ 5 ก.ย. 2024
- В видео продемонстрирован процесс сборки плагинов для работы с разными СУБД (MySQL, PostgreSQL, Firebird). Показан способ проверки работоспособности собранных драйверов. На примере Firebird Embedded показана возможность использования встраиваемых версий СУБД.
Этому видео почти 7 лет.Но актуально и действительно как никогда.Лучший канал по урокам с QC
Собрал? Где эта ебучая папка sqldrivers с подпапками драйверов. У меня только в папке mingw такая.
Директории Src\qtbase\src\plugins вообще нету
@@necromancer6608 чел,с windeployqt все получилось
@@necromancer6608 но даже если после windpqt он даёт ошибку,найди этот файл и сам добавь.у меня wdqt находился в папке bin компилятора MinGv
Спасибо за видео, помогло в сборке драйвера для MySql, актуально даже в конце 2021г!
thank you thank you thank you ,you saved my life
Спасибо, ты лучший.
Сборка для Оракла для Visual Studio 2015, думаю для некоторых инфа будет полезна.
1. Установить Visual Studio 2015 Express Edition.
2. Установить компоненты С++ для VS 2015 (при попытке создания C++-проекта VS попросит это сделать).
3. Установить Qt. При установке указать установку msvsc 2015 (достаточно одного выбранного пункта). Обязательно установить исходники (source).
4. Загрузить с сайта Oracle клиент (SDK package): www.oracle.com/technology/software/tech/oci/instantclient/index.html
5. В файле "C:\Qt\Qt5.10.0\5.10.0\Src\qtbase\src\plugins\sqldrivers\oci\oci.pro" закомментировать строку "QMAKE_USE += oci".
Получится что-то типа:
==================
TARGET = qsqloci
HEADERS += $$PWD/qsql_oci_p.h
SOURCES += $$PWD/qsql_oci.cpp $$PWD/main.cpp
#QMAKE_USE += oci
darwin:QMAKE_LFLAGS += -Wl,-flat_namespace,-U,_environ
OTHER_FILES += oci.json
PLUGIN_CLASS_NAME = QOCIDriverPlugin
include(../qsqldriverbase.pri)
==================
6. В файле "C:\Qt\Qt5.10.0\5.10.0\Src\qtbase\src\plugins\sqldrivers\qsqldriverbase.pri" закомментировать строку "include($$shadowed($$PWD)/qtsqldrivers-config.pri)".
Получиться что-то типа:
==================
QT = core core-private sql-private
# For QMAKE_USE in the parent projects.
#include($$shadowed($$PWD)/qtsqldrivers-config.pri)
PLUGIN_TYPE = sqldrivers
load(qt_plugin)
DEFINES += QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII
==================
7. Запустить "Командную строку VS2015 x86 Native Tools".
В ней выполнить следующие команды:
cd C:\Qt\Qt5.10.0\5.10.0\Src\qtbase\src\plugins\sqldrivers\oci
C:\Qt\Qt5.10.0\5.10.0\msvc2015\bin\qmake.exe "INCLUDEPATH+=C:\sdk\include" "LIBS+=-LC:\sdk\lib\msvc -loci" oci.pro
nmake
8. Если всё ок, в папке "C:\Qt\Qt5.10.0\5.10.0\Src\qtbase\src\plugins\sqldrivers\plugins\sqldrivers" появятся нужные DLL (qsqloci.dll и qsqlocid.dll). Скопировать их в "C:\Qt\Qt5.10.0\5.10.0\msvc2015\plugins\sqldrivers".
9. Пример соединения с базой Оракла (не забыть в pro-файле подключить модуль sql):
==================
#include
#include
QSqlDatabase db = QSqlDatabase::addDatabase("QOCI");
db.setHostName("127.0.0.1");
db.setDatabaseName("XE");
db.setUserName("login");
db.setPassword("pass");
if (!db.open()) {
qDebug()
Спасибо за полезный опыт. Мне через Qt к Oracle еще не приходилось подключаться.
Доброго времени суток, Лев!
Мне необходима помощь в настройке драйверов SQL для Qt 5.7 под Windows 10. Я облазил кучу форумов и так не мог разобраться в этом вопросе. Буду очень благодарен если Вы окажете мне помощь в этом вопросе. Заранее спасибо!
Спасибо за видео, как было сказано на 3:24 проблем может быть масса. У меня ubuntu 14.04, Qt 5.4, libmysql - 5.5.41. Возникла проблема с зависимостями, в частности потребовалась libmysqlclient_r.so.16. Решил таким образом (travis.com.ua/2014/08/qt-5-31-drayver-qmysql-hot-i-viditsya-no-ne-gruzitsya/). Может кому пригодится. И еще в Qt 5.4 уже есть готовая libqsqlmysql.so.
А как подключить MySQL на Qt Андроид?
Спасибо за ваш труд. Попробовал собрать драйвер под postgresql 9.5, не получается. Помогите пожалуйста.
Версия 5.11. В Документации совершенно другие функции для Mysql, есть возможность скачать эти библиотеки просто и закинуть? Вообще не знаю что делать, из за этого не могу начать работать
Лев, подскажите. Сделал как и Вы, но у меня теперь вылетает программа без ошибки...
Вот я скомпилил драйвер, у меня все работает в дебаге, но когда я свое приложение собираю в релизе, у меня вылетает ошибка QIBASE driver not load, можете подсказать в чем проблема?
Я немного поправлю тебя, Windows - .dll, *nix(Linux,FreeBSD,MacOS X) - .so