Помогите с драйверами на MySQL под QT. Пробовал собирать сам все получается, но их QT не видит
Litkevich Yuriy
31.3.2010, 9:55
Цитата(Лёшка @ 31.3.2010, 13:09)
![*](http://www.forum.crossplatform.ru/style_images/cozy_green/post_snapback.gif)
все получается, но их QT не видит
это как понимать?
Цитата(Litkevich Yuriy @ 31.3.2010, 10:55)
![*](http://www.forum.crossplatform.ru/style_images/cozy_green/post_snapback.gif)
все получается, но их QT не видит
это как понимать?
После сборки драйверов они появляются в папке \plugins\sqldrivers\ появились файлы: libqsqlmysqld4.a, qsqlmysqld4.dll, libqsqlmysql4.a,
qsqlmysql4.dll, но при попытке соединения с базой выдается ошибка что драйвер не найден ((
Litkevich Yuriy
31.3.2010, 17:19
Цитата(Лёшка @ 31.3.2010, 15:07)
![*](http://www.forum.crossplatform.ru/style_images/cozy_green/post_snapback.gif)
но при попытке соединения
при этой попытке в окружении (переменная PATH), путь к dll'кам самого мускуля есть?
Цитата(Litkevich Yuriy @ 31.3.2010, 18:19)
![*](http://www.forum.crossplatform.ru/style_images/cozy_green/post_snapback.gif)
Цитата(Лёшка @ 31.3.2010, 15:07)
![*](http://www.forum.crossplatform.ru/style_images/cozy_green/post_snapback.gif)
но при попытке соединения
при этой попытке в окружении (переменная PATH), путь к dll'кам самого мускуля есть?
![:scratch_one-s_head:](http://www.forum.crossplatform.ru/style_emoticons/default/scratch_one-s_head.gif)
надо посмотреть, но что то мне подсказывает что нету.
А после добавления пути в (PATH) нужно еще что то делать
Litkevich Yuriy
1.4.2010, 13:15
Цитата(Лёшка @ 1.4.2010, 15:06)
![*](http://www.forum.crossplatform.ru/style_images/cozy_green/post_snapback.gif)
надо посмотреть, но что то мне подсказывает что нету.
та программу как запускаешь? Из проводника виндовс или IDE (какой)?
Цитата(Litkevich Yuriy @ 1.4.2010, 14:15)
![*](http://www.forum.crossplatform.ru/style_images/cozy_green/post_snapback.gif)
Цитата(Лёшка @ 1.4.2010, 15:06)
![*](http://www.forum.crossplatform.ru/style_images/cozy_green/post_snapback.gif)
надо посмотреть, но что то мне подсказывает что нету.
та программу как запускаешь? Из проводника виндовс или IDE (какой)?
Из QT Creator, собственно в нем и видно сообщения об ошибке
Litkevich Yuriy
1.4.2010, 13:44
Цитата(Лёшка @ 1.4.2010, 17:32)
![*](http://www.forum.crossplatform.ru/style_images/cozy_green/post_snapback.gif)
QT Creator
в креаторе с левой панели есть кнопка для настройки проекта, щёлкнув по которой открывается окно с кучей настроек, там должна быть настройка
окружения запуска, в ней можно редактировать переменную PATH, посмотри есть ли там путь до <path/to/MySQL>/bin если нет, то добавь сам
molchanoviv
1.4.2010, 21:32
Лучше переместить длл-ки в папку с программой. Ибо как показывает мой
опыт это не всегда работает.
Цитата(Litkevich Yuriy @ 1.4.2010, 14:44)
![*](http://www.forum.crossplatform.ru/style_images/cozy_green/post_snapback.gif)
Цитата(Лёшка @ 1.4.2010, 17:32)
![*](http://www.forum.crossplatform.ru/style_images/cozy_green/post_snapback.gif)
QT Creator
в креаторе с левой панели есть кнопка для настройки проекта, щёлкнув по которой открывается окно с кучей настроек, там должна быть настройка
окружения запуска, в ней можно редактировать переменную PATH, посмотри есть ли там путь до <path/to/MySQL>/bin если нет, то добавь сам
![:yahoo:](http://www.forum.crossplatform.ru/style_emoticons/default/yahoo.gif)
Сасибо Litkevich Yuriy заработало!!!
Только при запуске моего приложения на другом компьютере оно говорит что нет драйвера
Как решить эту проблему??? Может dll`ки какие надо положить к исполняемому файлу???
Litkevich Yuriy
2.4.2010, 9:43
Цитата(Лёшка @ 2.4.2010, 11:29)
![*](http://www.forum.crossplatform.ru/style_images/cozy_green/post_snapback.gif)
Как решить эту проблему??? Может dll`ки какие надо положить к исполняемому файлу???
те же, что и нужны были на твоей машине. Возьми Dependency Walker, запусти в нём свою программу и посмотри какие dll'ки тянет твоё приложение из каталогов MinGW, Qt, MySQL
Ну и не забудь прочитать:
Как распространять программы использующие Qt в MS Windows?
Цитата(Litkevich Yuriy @ 2.4.2010, 10:43)
![*](http://www.forum.crossplatform.ru/style_images/cozy_green/post_snapback.gif)
Цитата(Лёшка @ 2.4.2010, 11:29)
![*](http://www.forum.crossplatform.ru/style_images/cozy_green/post_snapback.gif)
Как решить эту проблему??? Может dll`ки какие надо положить к исполняемому файлу???
те же, что и нужны были на твоей машине. Возьми Dependency Walker, запусти в нём свою программу и посмотри какие dll'ки тянет твоё приложение из каталогов MinGW, Qt, MySQL
Ну и не забудь прочитать:
Как распространять программы использующие Qt в MS Windows?Спасибо за совет думаю теперь разберусь.
А в какой теме мне можно посмотреть о проблемах с кодировкой при работе с базой данных MySQL?
У меня при вводе в моем приложении кирилических записей ивыполнении запроса появляется ошибка
"Incorrect string value: '\xD0\xB9' for column 'firstname' at row 1 QMYSQL3: Unable to execute statement"
Litkevich Yuriy
2.4.2010, 13:04
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
// Устанавливаем кодеки
QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());
// Для функций перевода tr() должно соответствовать кодировке исходников
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
...
}
Думал больше не буду возвращаться к этой теме, но пришлось. После сборки моего прооекта и размещиния в одном каталоге с исполняемым файлом всех нужных dll`ок, мое приложение при запуске на другом ПК всеравно ругается что нет нужного SQL драйвера(в моем случае MYSQL), dll`ку из папки бин сервера MYSQL тоже положил к исполняемому файлу. В чем проблема объясните?
Litkevich Yuriy
15.4.2010, 11:48
кэш плагинов, в реестре, почистил?
А сам драйвер из plugins копируешь?
Цитата(Litkevich Yuriy @ 15.4.2010, 12:48)
![*](http://www.forum.crossplatform.ru/style_images/cozy_green/post_snapback.gif)
кэш плагинов, в реестре, почистил?
Нет, как это сделать? И на каком компьюторе, на том на котором собираю свое приложение???
Цитата(BRE @ 15.4.2010, 12:52)
![*](http://www.forum.crossplatform.ru/style_images/cozy_green/post_snapback.gif)
А сам драйвер из plugins копируешь?
Да скопировал, а толку нет
Цитата(Лёшка @ 15.4.2010, 13:00)
![*](http://www.forum.crossplatform.ru/style_images/cozy_green/post_snapback.gif)
Да скопировал, а толку нет
В папке с исполняемым файлом, ты создал папку sqldrivers и скопировал туда сам драйвер? Все так сделал?
Litkevich Yuriy
15.4.2010, 12:15
Цитата(Лёшка @ 15.4.2010, 16:00)
![*](http://www.forum.crossplatform.ru/style_images/cozy_green/post_snapback.gif)
Нет, как это сделать? И на каком компьюторе, на том на котором собираю свое приложение???
на котором запускашь:
Кэш подключаемых модулей
Цитата(BRE @ 15.4.2010, 13:06)
![*](http://www.forum.crossplatform.ru/style_images/cozy_green/post_snapback.gif)
Цитата(Лёшка @ 15.4.2010, 13:00)
![*](http://www.forum.crossplatform.ru/style_images/cozy_green/post_snapback.gif)
Да скопировал, а толку нет
В папке с исполняемым файлом, ты создал папку sqldrivers и скопировал туда сам драйвер? Все так сделал?
![;)](http://www.forum.crossplatform.ru/style_emoticons/default/wink.gif)
![:clapping:](http://www.forum.crossplatform.ru/style_emoticons/default/clapping.gif)
спасибо большое заработало. Раньше драйвера просто кидал прям к исполняемому файлу
Здравствуйте! У меня немного иная проблема с MySQL(скачал 5.1.46 сервер с оффсайта) + QT 4.6.2 + Windows. Собрал MySQL драйвер (собрано mingw-utils 3.0, пробовал пересобирать Qt с поддержкой MySQL там сыпались ошибки сначала с WebKit, потом с какими-то скриптами, решил собрать MinGW), в папке <QTDIR>\plugins\sqldrivers наличиствуют файлы libqsqlmysql4.a libqsqlmysqld4.a qsqlmysql4.dll qsqlmysqld4.dll, драйвер видится в sqlbrowser (демо програмка, в папке <QTDIR>\demos\sqlbrowser), коннектится к локальному MySQL серверу, выдаёт список таблиц, при дабл-клике по любой таблице выдает "Unable to find table <имя таблицы>". В программке которую я писал процедура QSqlDatabase::open() не выполняется (ну т.е. возвращает false) и все запросы к серверу тут же прекращаются. Что делать? Помогите пожалуйста, очень надо доделать программку!
Litkevich Yuriy
12.5.2010, 11:21
Цитата(neneTc @ 12.5.2010, 14:54)
![*](http://www.forum.crossplatform.ru/style_images/cozy_green/post_snapback.gif)
Unable to find table <имя таблицы>"
как имя таблицы указано в БД, большими или маленькими буквами?
Попробуй в демке сделать запрос к таблице руками (в нижнем поле). Поэксперементируй с регистром.
Троли сломали всё нахрен в модуле QtSQL начиная с версии Qt 4.5 при этом целились кудато в поддержку мускула через QODBC, сломали firebird и всё остальное. Вплоть до Qt 4.7 не работает. Есть только обходные пути, и для каждой версии свои
Имена всех таблиц в нижнем регистре, запросы работают любые (в нижнем поле). Подскажите пожалуйста как мне правильно открыть подключение к MySQL. Может я что не так делаю?
db=QSqlDatabase::addDatabase("QMYSQL", "DataServer");
db.setHostName(gHost);
db.setUserName(gUser);
db.setPassword(gPass);
db.setPort(gPort);
if(db.open())
{
//...
}
//...
Litkevich Yuriy
12.5.2010, 11:47
Цитата(neneTc @ 12.5.2010, 14:54)
![*](http://www.forum.crossplatform.ru/style_images/cozy_green/post_snapback.gif)
процедура QSqlDatabase::open() не выполняется (ну т.е. возвращает false)
а что возвращает
db.lastError().text();
?
Can't connect to MySQL server on '<адрес>' (10061) QMYSQL: Unable to connect
Цитата(neneTc @ 12.5.2010, 11:54)
![*](http://www.forum.crossplatform.ru/style_images/cozy_green/post_snapback.gif)
пробовал пересобирать Qt с поддержкой MySQL там сыпались ошибки сначала с WebKit, потом с какими-то скриптами, решил собрать MinGW
Мне интересно зачем пересобирать Qt с поддержкой мускула??? У меня тоже были проблемы при работе с мускулом, но они решились и без пересборки QT, собирал только драйвер и все.
Лёшка, ну после неудачных пересборок я собирал только плагин)
Litkevich Yuriy, большое спасибо за помощь! проблема была исключительно в невнимательности. После устранения проблемы всё зафурыкало=)
molchanoviv
13.5.2010, 10:22
Цитата(Litkevich Yuriy @ 12.5.2010, 12:21)
![*](http://www.forum.crossplatform.ru/style_images/cozy_green/post_snapback.gif)
сломали firebird и всё остальное. Вплоть до Qt 4.7 не работает.
Qt 4.6.0 + Firebird 2 под Windows. Все работает.
Litkevich Yuriy
13.5.2010, 12:58
Цитата(molchanoviv @ 13.5.2010, 14:22)
![*](http://www.forum.crossplatform.ru/style_images/cozy_green/post_snapback.gif)
Qt 4.6.0 + Firebird 2 под Windows. Все работает.
а ты имена идентификаторов в БД сделай разного регистра
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.