PostgreSQL
数据库连接
QT:
// 建立到数据库的连接
QSqlDatabase db = QSqlDatabase::addDatabase("QPSQL");
db.setHostName("localhost");
db.setPort(5432);
db.setDatabaseName("your_database_name");
db.setUserName("your_username");
db.setPassword("your_password");
bool ok = db.open();
if (!ok) {
qDebug() << "无法连接到数据库" << db.lastError().text();
return 1;
}
查询表中的字段名称
SQL语句:
select column_name from information_schema.columns where table_name = 'your_table_name';
QT:
// 查询表中的字段名称
QString tableName = "your_table_name";
QSqlQuery query(db);
query.exec(QString("SELECT column_name FROM information_schema.columns WHERE table_name='%1'").arg(tableName));
while (query.next()) {
QString columnName = query.value(0).toString();
qDebug() << columnName;
}
查询表中的某一行
SQL语句:
Qt:
// 查询某一行数据
QString tableName = "your_table_name";
QString columnName = "your_column_name";
QString value = "your_value";
QSqlQuery query(db);
query.prepare(QString("SELECT * FROM %1 WHERE %2=:value").arg(tableName).arg(columnName));
query.bindValue(":value", value);
query.exec();
if (query.next()) {
// 获取数据行中的所有列
for (int i = 0; i < query.record().count(); i++) {
qDebug() << query.value(i);
}
} else {
qDebug() << "未找到符合条件的数据行";
}
查询表中所有行
// 查询所有行并打印结果
QSqlQuery query;
query.exec("SELECT * FROM table_name");
while (query.next()) {
QString column1 = query.value(0).toString();
QString column2 = query.value(1).toString();
// 依此类推,获取每个列的值
qDebug() << column1 << column2;
}
在选中表的第1行更新某个值
SQL语句:
update "public"."pie_property_0" set fd_id = '{c223fcb3-075b-4c7c-934f-60b579db2e12}' where ctid IN(SELECT ctid FROM pie_property_0 LIMIT 1 OFFSET 1 );
QT:
方法1:
QString sql = QString("update \"public\".\"%1\" set %2 where ctid IN(SELECT ctid FROM %3 LIMIT 1 OFFSET %4 );").arg(m_tableName, setSql, m_tableName, selected_row);
QSqlQuery query = DatabaseOperate::instance()->createQuery();
bool isSuccess = query.exec(sql);
if (!isSuccess)
{
qDebug() << query.lastError().text();
}
方法2:
QSqlQuery query;
query.prepare("UPDATE mytable SET column1 = :value1, column2 = :value2 WHERE id = :id");
query.bindValue(":value1", "new value 1");
query.bindValue(":value2", "new value 2");
query.bindValue(":id", 1);
if (query.exec()) {
qDebug() << "Update successful";
} else {
qDebug() << "Update error:" << query.lastError().text();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)