crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> QtCreator+MySql/(XP&Linux)/сборка и работа с lib(dll)?, Qt Creator IDE version 2.4.1 + MySql 5.5 (все от 01.02.2012)
sasa
  опции профиля:
сообщение 10.2.2012, 22:13
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 3
Регистрация: 10.2.2012
Пользователь №: 3213

Спасибо сказали: 0 раз(а)




Репутация:   0  


Добрый день-вечер-ночь!

Задача и проблема:
!!! запустить проект под windows и linux (просто перекомпилируя исходники в ОС)...
(при работе без базы всё было прекрасно... , но нужно брать ещё и из неё данные)

Исходные данные:
1) машина XP SP3 (c сетью) и установленным клиентом MySql 5.5 и QTCreator 2.4.1 (от 1 февраля 2012)
2) машина под Linux(Debian) (c сетью) и QTCreator(базу видит).
3) и отдельная машина с БД MySql5.

А теперь вопорс(ы):
Как же всё-таки собрать библиотеку под XP для MySql (по всем гайдам теперь таких путей нет!!!)?
Я на всё согласен: mingw или msvc (есть и MVS2010(SP1) если нужно) ---> скажите только как...
Может иначе инсталить QT4 (согласен писать под XP из под MVS2010 а не Creator - опыт есть и там и там)...

Главное чтоб в исходиках #include <mysql.h> полнималось и в XP и в Linux при компиляции и
запускались выполняемые файлы соответственно. Может у кого есть примеры - буду очень рад...

Спасибо!



Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
good_game
  опции профиля:
сообщение 15.2.2012, 13:12
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 43
Регистрация: 18.8.2011
Пользователь №: 2815

Спасибо сказали: 1 раз(а)




Репутация:   0  


Sasa, строку типа #include <mysql.h> у тебя в коде быть не должно, если ты пишешь в QtCreator. В Qt есть отличные классы для работы с базами данных (QSqlDatabase, QSqlQuery и т д). Им просто подсовываешь нужные драйверы и необходимость вникать в тонкости работы с конкретной СУБД пропадает. Это бывает в специальных случаях, но не в тех, когда работают с MySQL :) .
Я делал вот как:
1) компилируем драйвер. По этому вопросу гайдов найдёшь много. Возможно немного помучаешься, но задача в целом несложная. Для мускуля должны получиться файлы: libqsqlmysql4.a, libqsqlmysqld4.a, qsqlmysql4.dll, qsqlmysqld4.dll. Думаю тут объяснять не нужно какой файл для чего.
2) Вот код для создания соединения:
    db = QSqlDatabase::addDatabase("QMYSQL"); // Вот место, где ты указываешь драйвер. В данном случае я указал Мускуль. Будет другой сервер - укажешь другой
    db.setHostName(host);
    db.setDatabaseName(dbname);
    db.setUserName(user);    
    db.setPassword("");    

    if (!db.open())
    {
        QMessageBox::critical( // Не получилось соежиниться
            parent,                      
            QObject::tr("Database Error"),
            db.lastError().text());          // А здесь причина, по которой не удалось соединиться.
        exit(0);

    }


3) в директорию с прогой кидаешь libmySQL.dll соответствующей версии.

4) И последний совет: когда прогу скомпилируешь и будешь тестить на машине, на которой Qt не стоит, то в диретории, где лежит прога, создаёшь папку "sqldrivers", в неё кидаешь файл "qsqlmysql4.dll". Звучит как бред, но без этого не работает иногда. Причину не знаю.

Удачи.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
sasa
  опции профиля:
сообщение 17.2.2012, 16:58
Сообщение #3


Новичок


Группа: Новичок
Сообщений: 3
Регистрация: 10.2.2012
Пользователь №: 3213

Спасибо сказали: 0 раз(а)




Репутация:   0  


Спасибо, good_game!
Насчет include конечно так = +Sql !
В том и дело, что пока даже собрать под XP не могу (я не спец по "сделай сам") -
гайды теперь не рабочие... пути поменялись, файлы изменились и многих теперь нет!
Пока ушел чисто на Linux - там как-то работает...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
sasa
  опции профиля:
сообщение 25.5.2012, 10:24
Сообщение #4


Новичок


Группа: Новичок
Сообщений: 3
Регистрация: 10.2.2012
Пользователь №: 3213

Спасибо сказали: 0 раз(а)




Репутация:   0  


Все заработало в XP.

/sqldrivers - бред конечно..., но работает!!!

Спасибо большое!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
good_game
  опции профиля:
сообщение 24.10.2012, 21:59
Сообщение #5


Студент
*

Группа: Участник
Сообщений: 43
Регистрация: 18.8.2011
Пользователь №: 2815

Спасибо сказали: 1 раз(а)




Репутация:   0  


Про sqldrivers оказалось не бред. Оказывается это один из путей, где программа по-умолчанию ищет драйвера для SQL-серверов. То есть в принципе драйвера можно не в эту папку кидать, а в системные директории и прога её найдёт (лишь бы в PATH был соответствующий путь прописан).
Кстати, аналогичным образом программа, сделанная в QT может искать плагины для чтения ICO, GIF и других файлов картинок в директории imageformats. В частности там прога может искать qgif4.dll, qico4.dll, qjpeg4.dll и т д.
Так что никакой магии, всё логично.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 26.10.2012, 14:21
Сообщение #6


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(sasa @ 25.5.2012, 13:24) *
/sqldrivers - бред конечно..., но работает!!!
прочитай, пригодится
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 20.4.2024, 5:00