作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我遇到了 libpq 的 PQexec
功能间歇性挂起的问题连接。环顾邮件列表后,解决方案是使用异步函数 PQsendQuery
/PQgetResult
并实现您自己的超时。
现在我面临的问题是 PQgetResult
需要多次调用直到它返回 null
然后你就知道它已经完成了。然而,我的其余部分应用程序希望每个查询有一个 PQresult
对象。
所以我的问题是:
PQresult
?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/
我遇到了 libpq 的 PQexec 功能间歇性挂起的问题连接。环顾邮件列表后,解决方案是使用异步函数 PQsendQuery/PQgetResult 并实现您自己的超时。 现在我面临的问题是 PQ
我在 Postgres 9.5 数据库上有下表: \d t_rstats Table "public.t_rstats" Column | Type | C
我是一名优秀的程序员,十分优秀!