Я начал использовать PQsetSingleRowMode
, чтобы лучше контролировать данные, поскольку они передаются после PQsendQueryParams
. Вам нужно вызывать PQgetResult
намного больше, но действительно ли гарантируется, что вы будете получать одну запись каждый раз, и, таким образом, PQntuples
возвращает 1?
Я спрашиваю, потому что не уверен, что на 100% безопасно удалить код, который проверяет PQntuples
и повторяет столько раз. Также я был бы не против, если бы он был больше 1. Или если бы был отдельный «режим пожарного шланга», где вы получаете записи Любые, которые были полностью переданы по сети с момента предыдущего PQgetresult
...
В однострочном режиме PQgetResult
всегда будет давать результат не более чем с одной строкой. Имейте в виду, что последний возвращенный PGresult *
будет пустым.
Если вы хотите, чтобы набор результатов состоял из более чем одной строки, вам придется использовать курсоры и FETCH
.
Дело не в том, что я хочу, мои наборы результатов имеют определенное количество, я хотел бы сразу получить записи Любые, которые были переданы с момента последнего звонка. Но я предполагаю, что
PQgetResult
следующей строки вернется немедленно, если она уже передана, поэтому я рад, что вы подтвердили, что мне не нужно перебиратьPGntuples
сPQsetSingleRowMode
, поскольку это будет либо 1, либо 0.