crossplatform.ru

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

История благодарностей участнику good_game ::: Спасибо сказали: 1 раз(а)
Дата поста: В теме: За сообщение: Спасибо сказали:
15.2.2012, 13:12 QtCreator+MySql/(XP&Linux)/сборка и работа с lib(dll)?
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,

RSS Текстовая версия Сейчас: 29.3.2024, 16:39