Автор: AD 15.10.2008, 13:19
Происходит ошибка при запуске моего приложения на других машинах. Как исправить эту ошибку?
Ошибка следующая:
[attachment=273:error.JPG]
Ошибка получена с помощью QSqlDatabase::database().lastError()
Автор: fsMark 15.10.2008, 13:22
А у тебя плагин драйвера на этой машине есть?
Посмотри список доступных драйверов бд..
Автор: Litkevich Yuriy 15.10.2008, 13:24
Qt-Плагина соответствующего нет. Ты вроде в курсе как их с собой таскать.
Автор: AD 15.10.2008, 13:56
Цитата(Litkevich Yuriy @ 15.10.2008, 14:24)
Qt-Плагина соответствующего нет. Ты вроде в курсе как их с собой таскать.
мдя, блин.... Как его все-таки подключить правильно?
QString pluginsPath = qApp -> applicationDirPath() + QDir::separator() + "Plugins";
pluginsPath = pluginsPath.toLower();
qApp -> addLibraryPath(pluginsPath);
Вышеприведенного кода недостаточно... Что же еще надо сделать?
Автор: Litkevich Yuriy 15.10.2008, 14:01
я не использовал toLower()
И такой вопрос: Ты структуру каталогов сохраняешь в Plugins?
П.С. я http://wiki.crossplatform.ru/index.php/Развертывание_приложений_Qt_в_MS_Windows мануальчик написал
Автор: AD 15.10.2008, 14:47
Цитата(Litkevich Yuriy)
я не использовал toLower()
И такой вопрос: Ты структуру каталогов сохраняешь в Plugins?
П.С. я http://wiki.crossplatform.ru/index.php/Развертывание_приложений_Qt_в_MS_Windows мануальчик написал
Не понимаю, какую структуру каталогов?
Мануальчик как-то не очень помог!
Очень срочно надо добиться того, чтобы приложение работало на машине без Qt!!! Пожалуйста, помогите как-нибудь.
Автор: Litkevich Yuriy 15.10.2008, 15:04
в каталоге %QTDIR%/Plugins/ лежат другие каталоги, вот структуру каталога %QTDIR%/Plugins/ и надо сохранить, т.е. не валить все dll'ки в одну кучу (в каталог %PATH_TO_APP%/QtPlugins/)
к стати не забудь перед новым эксперементом на целевой машине почистить кэш плагинов в реестре
Автор: AD 15.10.2008, 15:34
Цитата(Litkevich Yuriy @ 15.10.2008, 16:04)
в каталоге %QTDIR%/Plugins/ лежат другие каталоги, вот структуру каталога %QTDIR%/Plugins/ и надо сохранить, т.е. не валить все dll'ки в одну кучу (в каталог %PATH_TO_APP%/QtPlugins/)
к стати не забудь перед новым эксперементом на целевой машине почистить кэш плагинов в реестре
Как именно почистить? %PATH_TO_APP% что за переменная? можно с примером, пожалуйста? Возможно что-то упустил, надо видеть все....
Получилось!
Ребята, будьте внимательны:
кроме указанных строчек кода:
QDir dir(qApp -> applicationDirPath() + QDir::separator() + "plugins" + QDir::separator());
QStringList list_plugins;
list_plugins << dir.absolutePath() << a.libraryPaths();
a.setLibraryPaths(list_plugins);
©
Необходимо в папочке plugins создавать необходимые папочки и уже только туда класть dll!
В моем случае это
plugins/sqldrivers Цитата(Litkevich Yuriy @ 15.10.2008, 15:01)
П.С. я http://wiki.crossplatform.ru/index.php/Развертывание_приложений_Qt_в_MS_Windows мануальчик написал
Юра, в статье следует указать, что необходимо соблюдать иерархию каталогов для драйверов. Это не очевидно из статьи, а это очень влияет на работу приложения!
Автор: Litkevich Yuriy 15.10.2008, 15:40
Цитата(AD @ 15.10.2008, 19:34)
Юра, в статье следует указать, что необходимо соблюдать иерархию каталогов для драйверов. Это не очевидно из статьи, а это очень влияет на работу приложения!
из мануала:
Цитата
Но, обязательно, сохраните структуру вложеных каталогов!
сделаю шаблон "Внимание" и "Замечание" потом статью подправлю
Автор: loro 19.4.2010, 21:26
Спасибо за статью, очень помогло.