dylan_klebold
@dylan_klebold

Qt + Firebird 2.5 — что-то не так с плагином?

Скачал архив с Firebird 2.5 (не embedded). Сбилдил плагин по инстуркции , вроде все ок, появились нужные .dll-ки (qsqlibase и qsqlibase4).
Затем скачал Embedded (тоже, конечно же, 2.5) архив, оттуда достал fembedded.dll (переименовав, следуя инструкции, в fbclient.dll). Ок, пытаюсь с этим всем работать, в папке с проектом есть папка sqldrivers, в которой все это добро лежит и грузится вот таким способом:

QPluginLoader loader;
loader.setFileName("..\\folder1\\folder2\\sqldrivers");
	
qDebug() << loader.load(); 
QMessageBox::information(0,"",QString::number(loader.load()));
qDebug() << loader.errorString();


Пытаюсь начать работать с базой
source_database = QSqlDatabase::addDatabase("QIBASE");
source_database.setDatabaseName("./test.fdb");
source_database.setUserName("SYSDBA");
source_database.setPassword("masterkey");


Однако натыкаюсь на ошибку "Driver not loaded!"
Ок, проверяю доступные драйвера
QStringList sdrivers = QSqlDatabase::drivers();
	//output all avalible drivers
for(int i = 0; i< sdrivers.size();i++)
		qDebug()<<sdrivers[i];


Однако, выводит, что он доступен!
"QIBASE" "QSQLITE" "QODBC3" "QODBC" "QPSQL7" "QPSQL"


Клал .dllки в папку с exeшником проекта - та же картина, ходил DependencyWalkerом - вроде все нормально. Что за дела? Кто-нибудь сталкивался с такими проблемами?
  • Вопрос задан
  • 4549 просмотров
Решения вопроса 1
@DancingOnWater
Как правила подобные траблы возникают из-за невнимательного прочтения https://qt-project.org/doc/qt-5.0/qtdoc/deployment...
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
kkmspb
@kkmspb
хобби C++, Qt, десктоп, микроконтроллеры STM32
Как вариант можно отладчиком в исходники заглянуть, за полчаса обычно понятно становится в чем дело.
А разве QPluginLoader нужен, вроде штатно QIBASE должен поддерживаться.
Например для QSQITE сразу addDatabase срабатывает.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы