libpq的 PQsetSingleRowMode 函数采用PGconn *(连接)参数,(如果我理解这一权利)则意味着该参数在连接级别有效,因此大概意味着一个连接只能有一个这样的查询会在任何时间点进行处理。
换句话说(并提供一种情况),如果执行 query_A 并立即调用 PQsetSingleRowMode 进入单行模式,然后循环遍历结果 query_A 的代码,并尝试根据从 query_A 的结果中检索到的一些值(通过 PQgetResult )执行 query_B ,如果 PQsetSingleRowMode 在执行 query_B 后也立即被调用(通过说 PQsendQuery ),这行得通吗?而下一个 PQgetResult 调用将获得哪个查询的结果?
简而言之,可以将 PQsetSingleRowMode 调用“嵌套”,并且 PGgetResult 可以返回上次执行查询的结果,然后恢复为检索先前执行的结果当第二个查询的所有数据/结果都被消耗掉时(通过调用 PGgetResult 返回 NULL 指示)谢谢。