Russian Qt Forum
Февраль 10, 2012, 15:27
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Базы данных
(Модератор:
Sergeich
) >
Не работает SQLite на других машинах
Страниц: [
1
]
2
3
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Не работает SQLite на других машинах (Прочитано 5935 раз)
PinkPanther
Новичок
Offline
Сообщений: 48
Не работает SQLite на других машинах
«
:
Январь 28, 2010, 17:29 »
Господа, возник странный глюк (а может быть и закономерный, но пока - впервые).
Написал небольшую софтинку, которая, помимо прочего, пишет в базу (SQLite).
У меня на компе все ОК, работает как часы. А на других при открытии базы выдает ошибку, и ничего никуда писать не хочет.
Отдавал людям 4 файла: мой .exe, QtGui4.dll, QtCore4.dll, QtSql4.dll
У меня прога работает из любого каталога, если в нем есть эти файлы. Если базы нет, она создается, если есть, дополняется. У них и не создается, и не дополняется, если я даю им свою версию. Где грабли? Что сделано не так?
Записан
Эвтаназия - наше хобби!
Мой блог:
http://readandlook.livejournal.com
SABROG
Гуру общения
Offline
Сообщений: 1424
Re: Не работает SQLite на других машинах
«
Ответ #1 :
Январь 28, 2010, 17:42 »
Вероятно sql драйвера собраны в виде плагинов.
Записан
Национальная группа
Russian Federation
на QtCentre.
Qt: 4.7.2, GCC: 4.4.0
We'd get - widget!
PinkPanther
Новичок
Offline
Сообщений: 48
Re: Не работает SQLite на других машинах
«
Ответ #2 :
Январь 28, 2010, 18:14 »
Цитата: SABROG от Январь 28, 2010, 17:42
Вероятно sql драйвера собраны в виде плагинов.
Гм... ставил 4.6.0 из экзешника, commercial. После ничего не трогал. Плагины? Возможно... Не подскажете, что нужно изменить и как? Пишу в VS2008.
Записан
Эвтаназия - наше хобби!
Мой блог:
http://readandlook.livejournal.com
panAlexey
Бывалый
Offline
Сообщений: 464
Люблю соленые шуточки, но за них банят :(
Re: Не работает SQLite на других машинах
«
Ответ #3 :
Январь 28, 2010, 18:50 »
Цитата: PinkPanther от Январь 28, 2010, 18:14
Цитата: SABROG от Январь 28, 2010, 17:42
Вероятно sql драйвера собраны в виде плагинов.
Гм... ставил 4.6.0 из экзешника, commercial. После ничего не трогал. Плагины? Возможно... Не подскажете, что нужно изменить и как? Пишу в VS2008.
Поставь на виртуал-бокс винду чистую и протестируй свои "отдал" на ней.
скорее всего не хватает <твай проект фолдерз>\plagins\qsqlite4.dll
«
Последнее редактирование: Январь 28, 2010, 18:52 от panAlexey
»
Записан
Win Xp SP-2, Qt4.3.4/MinGW.
Если вы курите, и говорите, что не принимаете наркотики - вы лжете.
Хотите
узнать больше
?
SABROG
Гуру общения
Offline
Сообщений: 1424
Re: Не работает SQLite на других машинах
«
Ответ #4 :
Январь 28, 2010, 20:23 »
Вероятно из-за того, что твой дистрибутив Qt коммерческий все GPL'ные 3rd библиотеки собраны в качестве .dll. Тебе нужно зайти в папку $QTDIR/plugins/sqldrivers и оттуда достать .dll файл. Потом читать раздел "Deploying an Application on Windows" в документации насчет того как таскать плагины с твоей программой и где их надо размещать.
Записан
Национальная группа
Russian Federation
на QtCentre.
Qt: 4.7.2, GCC: 4.4.0
We'd get - widget!
SASA
Программист
Offline
Сообщений: 523
Re: Не работает SQLite на других машинах
«
Ответ #5 :
Январь 29, 2010, 11:36 »
http://doc.crossplatform.ru/qt/4.5.0/deployment.html
Записан
Akaiten
Самовар
Offline
Сообщений: 110
Re: Не работает SQLite на других машинах
«
Ответ #6 :
Январь 29, 2010, 11:54 »
Недавняя тема
Подключение плагинов при переносе на машину без установленной Qt.
Записан
PinkPanther
Новичок
Offline
Сообщений: 48
Re: Не работает SQLite на других машинах
«
Ответ #7 :
Январь 29, 2010, 17:16 »
Спасибо! На днях поставлю Qt на другую машину, и сделаю конфиг по всем правилам. Надеюсь, заработает...
Записан
Эвтаназия - наше хобби!
Мой блог:
http://readandlook.livejournal.com
panAlexey
Бывалый
Offline
Сообщений: 464
Люблю соленые шуточки, но за них банят :(
Re: Не работает SQLite на других машинах
«
Ответ #8 :
Январь 29, 2010, 17:22 »
Цитата: PinkPanther от Январь 29, 2010, 17:16
Спасибо! На днях поставлю Qt на другую машину, и сделаю конфиг по всем правилам. Надеюсь, заработает...
Да скачай ты виртуал-бокс да поставь на свою машину чистую ось под него да потренируйся.
Виртуалки затем и придумали.
Записан
Win Xp SP-2, Qt4.3.4/MinGW.
Если вы курите, и говорите, что не принимаете наркотики - вы лжете.
Хотите
узнать больше
?
PinkPanther
Новичок
Offline
Сообщений: 48
Re: Не работает SQLite на других машинах
«
Ответ #9 :
Январь 30, 2010, 10:55 »
Цитата: panAlexey от Январь 29, 2010, 17:22
Цитата: PinkPanther от Январь 29, 2010, 17:16
Спасибо! На днях поставлю Qt на другую машину, и сделаю конфиг по всем правилам. Надеюсь, заработает...
Да скачай ты виртуал-бокс да поставь на свою машину чистую ось под него да потренируйся.
Виртуалки затем и придумали.
А зачем? Она и там не заработает. На данный момент попробовал прогу на 6 машинах (2 c Win-7, 4 c XP), на которых она должна была бы, по идее, работать, и ни на одной не заработала, вылетая с одной и той же ошибкой. Понятно, что виноваты дрова SQLite (все остальные ф-ции работают). При этом 2 машины из 6 имеют почти нулевые оси. Понятно, что есть привязка к установленной Qt.
Записан
Эвтаназия - наше хобби!
Мой блог:
http://readandlook.livejournal.com
SASA
Программист
Offline
Сообщений: 523
Re: Не работает SQLite на других машинах
«
Ответ #10 :
Январь 30, 2010, 11:44 »
Цитата: PinkPanther от Январь 30, 2010, 10:55
Понятно, что есть привязка к установленной Qt.
Нет. Надо правильно разворачивать приложение. Мой пример с SQLite. Радотает везде
-imageformats\qjpeg4.dll
\ ...
\qico4.dll
-sqldrivers\qsqlite4.dll
-QtSql4.dll
-QtCore4.dll
-QtGui4.dll
-QtNetwork4.dll
-myApp.exe
Сложнее, если вам надо использовать бинарники из qt, например, ассистант. Прииходиться писать qt.conf.
P.S. Плюс надо поставить студийные дллки - vcredist_x86.exe.
P.S.S Почитайте ссылку, которую я дал. Там всё по-русски.
Записан
panAlexey
Бывалый
Offline
Сообщений: 464
Люблю соленые шуточки, но за них банят :(
Re: Не работает SQLite на других машинах
«
Ответ #11 :
Январь 30, 2010, 13:05 »
Цитата: PinkPanther от Январь 30, 2010, 10:55
Цитата: panAlexey от Январь 29, 2010, 17:22
Цитата: PinkPanther от Январь 29, 2010, 17:16
Спасибо! На днях поставлю Qt на другую машину, и сделаю конфиг по всем правилам. Надеюсь, заработает...
Да скачай ты виртуал-бокс да поставь на свою машину чистую ось под него да потренируйся.
Виртуалки затем и придумали.
А зачем?
Для теста и выяснения чего её надо, а на зломученья пользователей.
ладно, я пас.
Записан
Win Xp SP-2, Qt4.3.4/MinGW.
Если вы курите, и говорите, что не принимаете наркотики - вы лжете.
Хотите
узнать больше
?
PinkPanther
Новичок
Offline
Сообщений: 48
Re: Не работает SQLite на других машинах
«
Ответ #12 :
Январь 30, 2010, 18:04 »
Цитата: SASA от Январь 30, 2010, 11:44
Нет. Надо правильно разворачивать приложение. Мой пример с SQLite. Радотает везде
-imageformats\qjpeg4.dll
\ ...
\qico4.dll
-sqldrivers\qsqlite4.dll
-QtSql4.dll
-QtCore4.dll
-QtGui4.dll
-QtNetwork4.dll
-myApp.exe
Сложнее, если вам надо использовать бинарники из qt, например, ассистант. Прииходиться писать qt.conf.
Спасибо! Все, о чем написано в статье, сделал. Правда, пока не ставил vcredist_x86.exe. Сейчас попробую.
P.S. Увы, не помогло. :-(
«
Последнее редактирование: Январь 30, 2010, 19:24 от PinkPanther
»
Записан
Эвтаназия - наше хобби!
Мой блог:
http://readandlook.livejournal.com
SABROG
Гуру общения
Offline
Сообщений: 1424
Re: Не работает SQLite на других машинах
«
Ответ #13 :
Январь 31, 2010, 12:14 »
Цитата: PinkPanther от Январь 28, 2010, 17:29
А на других при открытии базы выдает ошибку
Какую?
Записан
Национальная группа
Russian Federation
на QtCentre.
Qt: 4.7.2, GCC: 4.4.0
We'd get - widget!
PinkPanther
Новичок
Offline
Сообщений: 48
Re: Не работает SQLite на других машинах
«
Ответ #14 :
Январь 31, 2010, 18:29 »
Цитата: SABROG от Январь 31, 2010, 12:14
Цитата: PinkPanther от Январь 28, 2010, 17:29
А на других при открытии базы выдает ошибку
Какую?
Код:
bool dbase::createConnection()
{
QSqlDatabase db = QSqlDatabase::addDatabase(QObject::tr("QSQLITE"));
db.setDatabaseName(QObject::tr("XXXXX"));
db.setUserName(QObject::tr("YYYYY"));
db.setHostName(QObject::tr("Home"));
db.setPassword(QObject::tr("ZZZZZ"));
if(!db.open())
{
Messages::showError(QObject::tr("Ошибка открытия базы:\nНе могу открыть базу данных 'XXXXX'."));
return false;
}
return true;
}
Сначала выкидывает эту ошибку (это ф-ция инициализации базы, взятая почти под кальку у Шлее), притом выкидывает вне зависимости от того, есть ли в директории готовый файл базы, или нет. Потом прога ругается при создании таблиц, потом - при попытке обращений к базе, на запись и чтение. В общем, везде, где доступ к базе проверяется и где реализован вывод сообщения об ошибке. Привязки к каталогу нет - на рабочей машине свободно перемещаю экзешник, DLL-ы и базу, и все работает из любых мест.
(Messages - статический класс с функциями-макросами, которые выводят QMessageBox)
Записан
Эвтаназия - наше хобби!
Мой блог:
http://readandlook.livejournal.com
Страниц: [
1
]
2
3
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> Печать
=> Интернационализация, локализация
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
=> Архив
===> Программирование
=====> Python
===> Веб программирование
=====> PHP, PERL, CGI
Загружается...