Как правильно, загружать, читать, удалять, редактировать данные в таблицы mysql в qt?

Пользователь

от ian.heidenreich , в категории: SQL , 2 года назад

Как правильно, загружать, читать, удалять, редактировать данные в таблицы mysql в qt?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от cloyd , 2 года назад

@ian.heidenreich 

Для работы с таблицами mysql в qt можно использовать классы QSqlDatabase, QSqlQuery и QSqlTableModel.


Чтобы загрузить данные из таблицы, необходимо создать объект QSqlQuery и выполнить запрос к базе данных:

1
2
3
4
5
6
7
8
QSqlQuery query;
query.exec("SELECT * FROM my_table");

while (query.next()) {
    int id = query.value("id").toInt();
    QString name = query.value("name").toString();
    // обработка полученных данных
}


Для добавления новых данных в таблицу, также используется объект QSqlQuery с запросом INSERT:

1
2
3
4
5
QSqlQuery query;
query.prepare("INSERT INTO my_table (id, name) VALUES (:id, :name)");
query.bindValue(":id", 1);
query.bindValue(":name", "John");
query.exec();


Для удаления и редактирования данных также используются SQL-запросы DELETE и UPDATE.


Если необходимо визуально отобразить и редактировать таблицу, можно использовать класс QSqlTableModel. Он автоматически загружает данные из таблицы и обновляет их при изменении. Для этого необходимо создать объект модели, связать его с базой данных и установить его для виджета таблицы:

1
2
3
4
5
6
QSqlTableModel *model = new QSqlTableModel;
model->setTable("my_table");
model->select();

QTableView *tableView = new QTableView;
tableView->setModel(model);


В целом, работа с таблицами mysql в qt не отличается от работы с базами данных в других языках программирования, таких как Python или Java. Главное правильно сформулировать SQL-запросы и использовать соответствующие классы для работы с базой данных в qt.