gpt4 book ai didi

c - libpq - PQsendQuery 等待完整结果

转载 作者:太空狗 更新时间:2023-10-29 15:29:58 24 4
gpt4 key购买 nike

我遇到了 libpq 的 PQexec 功能间歇性挂起的问题连接。环顾邮件列表后,解决方案是使用异步函数 PQsendQuery/PQgetResult 并实现您自己的超时。

现在我面临的问题是 PQgetResult 需要多次调用直到它返回 null 然后你就知道它已经完成了。然而,我的其余部分应用程序希望每个查询有一个 PQresult 对象。

所以我的问题是:

  1. 有没有办法连接/加入多个 PQresult
  2. 我能以某种方式使用 PQisBusy & PQconsumeInput 来等待所有结果在调用 PQgetResult 之前准备好了吗?

最佳答案

致谢 Laurenz Albe 致 postgresql 邮件列表上的 answered

如果你有一个SQL语句,你只会得到一个PQ 结果。如果你发送一个查询字符串,你会得到不止一个有不止一个陈述,例如

PQsendQuery(conn, "SELECT 42; SELECT 'Hello'"); 

将产生两个 PQresults

你可以只使用异步获取多个PQresults命令处理;相应的 PQexec 将返回只有 last 语句执行的 PQresult。

所以你可以通过丢弃获得与 PQexec 相同的行为所有 PQresults 除了最后一个。

关于c - libpq - PQsendQuery 等待完整结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13629237/

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