Подключение Mysql и Qt? - PullRequest
       41

Подключение Mysql и Qt?

3 голосов
/ 06 августа 2011

У меня проблемы с подключением программы, которую я создаю с помощью qt. И как только я это сделаю, как мне заставить базу данных работать с виджетом таблицы?

Вероятно, я должен сообщить вам, что я не знаю, с чего начать, кроме как я создал базу данных с помощью libreoffice base.

Ответы [ 3 ]

3 голосов
/ 01 января 2013

Qt предоставляет структуру модель / представление, которая является очень гибким инструментом для представления данных в таблицах, деревьях или списках.поэтому вам нужно использовать модель QSqlTableModel.

Сначала создайте экземпляр QSqlDatabase и подключитесь к базе данных

QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("my_database");
db.setUserName("username");
db.setPassword("password");
if(!db.open())
    QMessageBox::warning(this,"Error","Unable to connect to the database");

, затем создайте модель

QSqlTableModel *model = new QSqlTableModel(parent,db);
model->setTable("students");
model->select(); //< fetch data

и, наконец, скажите таблице, чтобы она отображала данные этой модели

QTableView *table = new QTableView;
table->setModel(model);
1 голос
/ 07 августа 2011

В справочной системе Qt взгляните на Примеры, перейдите в SQL и выберите Пример модели таблицы. Вы обнаружите, что MySQL с Qt не так сложно использовать. (Возможно, вам придется вручную скомпилировать драйвер qtmysql; в моей системе он находится в /QtSources/4.7.3/src/plugins/sqldrivers/mysql/mysql.pro. Просто qmake / make / make install. Удачи и приятного просмотра!

0 голосов
/ 09 сентября 2014
  1. добавить QT + = Core sql в .pro
  2. , загрузить libmysq.dll и добавить в Qt-> Qt 5.3.0 -> mingw482_32 -> Плагины -> sqldrivers
  3. создать новый файл консоли Qt
  4. добавить эту строку в main.cpp

.

int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);


QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setUserName("root");
db.setPassword("");
db.setDatabaseName("sim");

if(db.open())
{
    qDebug() << "connected " << db.hostName();
}else{
qDebug() << "Connection FAILED.";

}
return a.exec();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...