2 / 2 / 0
Регистрация: 18.01.2012
Сообщений: 51
1

Qt + MySql

22.03.2012, 18:43. Показов 3747. Ответов 6
Метки нет (Все метки)

Доброго времени суток!
Собрал QMYSQL плагин, в папке plugins/sqldrivers появился файл "libqsqlmysql_debug.dylib" (только debug).

Далее пишу программу:

файл Architect.pro
C++
1
2
3
4
5
6
7
8
9
10
11
12
QT       += core gui sql
 
TARGET = Architect
TEMPLATE = app
 
 
SOURCES += main.cpp\
        mainwindow.cpp
 
HEADERS  += mainwindow.h
 
FORMS    += mainwindow.ui
файл main.cpp
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <QtGui/QApplication>
#include "mainwindow.h"
#include <QtSql>
#include <QMessageBox>
 
void connection()
{
    QSqlDatabase *db = new QSqlDatabase;
    *db = QSqlDatabase::addDatabase("QMYSQL");
    db->setHostName("some.host");
    db->setDatabaseName("dat_name");
    db->setUserName("some_user");
    db->setPassword("some_password");
 
    if (!db->isOpen())
    {
        QMessageBox *mes = new QMessageBox;
        mes->setText(db->lastError().text());
        mes->setModal(true);
        mes->show();
        return;
    }
}
 
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w; 
    w.show();
    connection();
    
    return a.exec();
}
При выполнении функции connection выскакивает сообщение "Driver not loaded"

Что я сделал не так.
И может это быть из-за того что у меня только debug-файл в плагинах, если так, то как собрать релизовский?
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.03.2012, 18:43
Ответы с готовыми решениями:

Сборка плагина MySQL для Qt 5.14.1 (Project ERROR: Library 'mysql' is not defined.)
Здравствуйте. Столкнулся, казалось бы, с распространённой проблемой, но решить её так и не сумел....

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'
Ajenti CentOS 6 Linux 2.6.32-573.7.1.el6.x86_64 x86_64 Добрый день. Перестал работать MySQL. ...

Ошибка DBD::mysql::st execute failed: MySQL server has gone away at /usr/local/...
на старом серваке все работало, переехал на новый и никак не могу понять, что к чему... пишет...

Как указать путь к БД MySQL локально, используя MySQL Connector/Net
На форуме нашел несколько тем, похожих на мою, но решение моей проблемы там не рассматривается....

6
27 / 27 / 0
Регистрация: 04.03.2011
Сообщений: 164
23.03.2012, 00:11 2
Я, вот такую функцию использую:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
bool createConnection()
{
    QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
    db.setDatabaseName("base.dat");
    if (!db.open()) {
        QMessageBox::warning(0, QObject::tr("Database Error"),
                db.lastError().text());
        return false;
    }
    return true;
}
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QApplication::setStyle(new QPlastiqueStyle);
    //QTextCodec *codec = QTextCodec::codecForName("Windows-1251");
    //QTextCodec::setCodecForTr(codec);
    bool existingData = QFile::exists("base.dat");
    if (!createConnection())
        return 1;
    if (!existingData)
        createFakeData();
    MAmtd form;
    form.readSettings();
    form.show();
    return app.exec();
}
0
2 / 2 / 0
Регистрация: 18.01.2012
Сообщений: 51
23.03.2012, 08:34  [ТС] 3
Мне нужен не SQLite, а именно MySql. Плагин SQLite поставляется вместе с Qt и прекрасно подгружается, а вот с MySql другая история.
0
Автор FAQ
2728 / 1424 / 89
Регистрация: 08.09.2011
Сообщений: 3,746
Записей в блоге: 1
23.03.2012, 11:24 4
если вы компилируете проект в Release а плагин собран только в debug то естественно драйвер не подгрузится, какая у вас ОС и как вы ставили SDK

Не по теме:

Все больше склоняюсь что для кросс платформенного программирования лучше юзать Linux, Qt ставить из репозиториев, и тогда проблемы сами собой решаться

0
2 / 2 / 0
Регистрация: 18.01.2012
Сообщений: 51
23.03.2012, 21:05  [ТС] 5
Mac OS. SDK ставил через онлайн установщик.

Добавлено через 1 час 34 минуты
Цитата Сообщение от Чистый Посмотреть сообщение
если вы компилируете проект в Release а плагин собран только в debug то естественно драйвер не подгрузится, какая у вас ОС и как вы ставили SDK
Попытался собрать руками следующей командой:
./configure -plugin-sql-mysql -l/usr/local/mysql-5.5.20-osx10.6-x86_64/include -L/usr/local/mysql-5.5.20-osx10.6-x86_64/lib

Получил отказ в виде: "MySQL support cannot be enabled due to functionality tests!"

Что не так сделал?
0
57 / 57 / 1
Регистрация: 07.10.2011
Сообщений: 203
28.03.2012, 15:11 6
С макосью не общался, но на винде у меня интересный ситуэйшен что скомпилированные либы мускуля с кутэ не работают(а на других компах проект робит на ура). Зато с либами стыренными из MySQL Workbench работает. Странность, но может вам поможет =)
0
2 / 2 / 0
Регистрация: 18.01.2012
Сообщений: 51
28.03.2012, 18:54  [ТС] 7
Спасибо всем! Решение нашел. Если кому интересно вот ссылочка.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.03.2012, 18:54

Ошибка при отправке запроса MySQL через JDBC MySQL connector
При помощи Maven я вызываю зависимости Twilio и JDBC MySQL connector, и собираю .jar файл. У меня...

Ошбка Can't connect to local MySQL server through socket '/tmp/mysql.sock' (11)
Есть сервер с mysql - если клиенты присоединятся к серверу БД через TCP/IP, то всё отлично и сервер...

Ajax отправка данных из формы в базу mysql и вывод из базы mysql
$(function() { $('#chat_submit').click(function(e) { e.preventDefault(); ...

Mysql error 1146 table doesn't exist в MySQL Workbench 8.0 CE
Здравствуйте ребят! Возникла следующая проблема, создал я таблицу под транзакции, ввел данные...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.