QSqlQuery查询流程以及API
时间: 2024-01-07 21:05:41 浏览: 260
QSqlQuery 是 Qt 框架中用于执行 SQL 语句的类,它提供了多种查询方式,包括执行 SELECT 语句、插入、更新和删除等操作。下面是 QSqlQuery 的查询流程:
1. 创建 QSqlDatabase 对象,并连接到数据库:
```cpp
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("myDatabase");
db.setUserName("myUsername");
db.setPassword("myPassword");
if (!db.open()) {
qDebug() << "Failed to connect to database";
return;
}
```
2. 创建 QSqlQuery 对象,并设置 SQL 语句:
```cpp
QSqlQuery query;
query.prepare("SELECT * FROM myTable WHERE id = ?");
query.addBindValue(1);
```
3. 执行 SQL 语句:
```cpp
if (!query.exec()) {
qDebug() << "Failed to execute query";
return;
}
```
4. 处理查询结果:
```cpp
while (query.next()) {
int id = query.value(0).toInt();
QString name = query.value(1).toString();
int age = query.value(2).toInt();
qDebug() << "id:" << id << ", name:" << name << ", age:" << age;
}
```
QSqlQuery 还提供了其他一些常用的 API,包括:
- exec(): 执行 SQL 语句;
- prepare(): 准备 SQL 语句;
- bindValue(): 绑定参数;
- next(): 移动到下一行记录;
- value(): 获取当前行指定字段的值;
- isActive(): 查询是否正在执行;
- isSelect(): 查询是否是 SELECT 语句;
- lastError(): 获取上一次操作的错误信息。
阅读全文