gpt4 book ai didi

c++ - 使用 qsql(c++ 和 qt)将数组(二进制数据)插入到 postgres 数据库中

转载 作者:行者123 更新时间:2023-11-28 07:54:28 26 4
gpt4 key购买 nike

考虑以下与 postgres 数据库的交互:

QSqlDatabase db = QSqlDatabase::addDatabase("QPSQL");
db.setHostName("acidalia");
db.setDatabaseName("customdb");
db.setUserName("mojito");
db.setPassword("J0a1m8");
bool ok = db.open();
QSqlQuery query(db);

QSqlQuery query(db);

QVector<int> byteArray(2);
byteArray[0] = 0;
byteArray[1] = 7;

QVariant v = QVariant::fromValue(byteArray);

cout << "dropping a table: " << query.exec("drop table aaa;") << endl; //gives 1
cout << "creating a table: " << query.exec("create table aaa (gid integer, pos integer[])") << endl; // gives 0
query.prepare("INSERT INTO aaa (gid) VALUES (:gid, :pos)");
query.bindValue(0, 1);
query.bindValue(1, v);
cout << "inserting: " << query.exec() << endl; // gives 0 :-(

当然,一种方法是使用手动构建的 sql 语句发送数据,并在服务器上将查询作为普通查询执行(字节数组将作为字符串插入),但我我正在寻找一个更好的解决方案..

最佳答案

INSERT 声明了 3 个目标列,但有 4 个绑定(bind)值。

query.prepare("INSERT INTO geo (gid, bboxx, bboxy) " "VALUES (:gid, :bboxx, :bboxy, :pos)");

在 bboxy 之后添加 bytea 列后,这应该可以工作。

关于c++ - 使用 qsql(c++ 和 qt)将数组(二进制数据)插入到 postgres 数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13045677/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com