Ili*_*oly 4 c postgresql asynchronous libpq
我遇到了libpq PQexec函数挂在间歇性连接上的问题.浏览邮件列表后,解决方案是使用异步函数PQsendQuery/ PQgetResult并实现自己的超时.
现在我面临的问题是PQgetResult需要多次调用,直到它返回null,然后你就知道它已经完成了.但是,我的应用程序的其余部分需要PQresult每个查询一个对象.
所以我的问题是:
PQresults?PQisBusy&PQconsumeInput等到所有结果都准备好了吗PQgetResult?学分到Laurenz ALBE到谁回答 PostgreSQL的邮件列表上这种过度.
如果您有一个SQL语句,则只能获得一个
PQresult.如果您发送带有多个语句的查询字符串,则会获得多个,例如
PQsendQuery(conn, "SELECT 42; SELECT 'Hello'");
Run Code Online (Sandbox Code Playgroud)
会导致两个PQresults.
您PQresults只能使用异步命令处理来获取多个; 相应的PQexec只返回执行的最后一个语句的PQresult .
因此,除了最后一个之外,您可以获得与PQexec丢弃所有相同的行为PQresults.