好的是,程序执行查询时将表复制到文件.CSV。 Qt告诉我下一个错误。
“错误:输入结束时出现语法错误 第1行:执行
以下是导出操作的代码:
QSqlQuery qry;
qry.prepare("copy inventory to './inventory.csv'");
if(qry.exec()){
qDebug()<<"Succes";
}else{
qDebug()<<qry.lastError().text();
}
qt的版本是5.4,使用postgresql 9.3和驱动程序PQSQL正常工作就可以像select一样执行另一个查询。
感谢。
答案 0 :(得分:1)
您提到您正在使用Qt的SQL界面及其PostgreSQL驱动程序。
虽然Qt的PostgreSQL驱动程序是在PostgreSQL的标准客户端库libpq
之上构建的,但据我所知,它不支持{{1}的许多功能}}。特别是,似乎无法访问libpq
协议的支持,也无法访问COPY
异步通知。
你必须:
LISTEN
直接发送到libpq
COPY ... FROM STDIN
语句;或INSERT
从运行PostgreSQL数据库的服务器上的文件中读取输入,PostgreSQL数据库运行的用户可以读取该文件。(您也可以向Qt提交补丁以添加对COPY ... FROM '/path/on/server'
协议的支持,这不应该太难实现,但如果您要求,可能不是最佳选择此。)
答案 1 :(得分:0)