qt - 无法创建查询 COPY PostgreSQL PQSQL 驱动程序

标签 qt postgresql csv

事情是当程序执行查询时将表复制到文件 .CSV。 Qt 显示下一个错误。

"ERROR: syntax error at end of input LINE 1: EXECUTE

导出操作的代码如下:

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一样很好的执行别人的query。

谢谢。

最佳答案

您提到您正在使用 Qt 的 SQL 接口(interface)及其 PostgreSQL 驱动程序。

虽然 Qt 的 PostgreSQL 驱动程序构建在 PostgreSQL 的标准客户端库 libpq 之上,但据我所知,它不支持 libpq 的许多功能.特别是,似乎无法访问对COPY 协议(protocol)的支持,也无法访问对异步通知的LISTENing 的支持。

你必须:

  • libpq 直接COPY ... FROM STDIN
  • 或通过 Qt 使用常规 INSERT 语句;或
  • 将 CSV 输入传输到服务器,然后使用 COPY ... FROM '/path/on/server' 从运行 PostgreSQL 数据库的服务器上的文件中读取输入, PostgreSQL 数据库运行的用户可读。

(您还可以向 Qt 提交一个补丁以添加对 COPY 协议(protocol)的支持,这应该不会太难实现,但如果您要问这个可能不是最好的选择.)

关于qt - 无法创建查询 COPY PostgreSQL PQSQL 驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31309181/

相关文章:

csv - 在 PySpark 中,SparkSession 和 Databricks 中用于导入 CSV 文件的 Spark-CSV 模块有什么区别?

qt - 如何将qmake转换为cmake?

c++ - 使用 Qt 对 XML 文件进行排序

c++ - Qt5 静态链接在 Ubuntu Linux 上失败

qt - 使用 qt : How To Build a Gui OnTop Of a Console Application?

postgresql - 如何防止从 SPA 创建对象时重复 id?还是我应该留在分贝?

postgresql - 带有 LIKE 和 NOT EQUAL TO 的 Postgres 查询

arrays - 如何在 Rails 5/Postgres 中查询 jsonb 散列元素数组以查找缺少的键/值对

python - 使用 xlsxwriter ByteIO 对象写入 CSV 文件

sql-server-2008 - 从逗号分隔的字符串批量插入