Гарантировано ли, что PQntuples равен 1 с PQsetSingleRowMode?

Я начал использовать PQsetSingleRowMode, чтобы лучше контролировать данные, поскольку они передаются после PQsendQueryParams. Вам нужно вызывать PQgetResult намного больше, но действительно ли гарантируется, что вы будете получать одну запись каждый раз, и, таким образом, PQntuples возвращает 1?

Я спрашиваю, потому что не уверен, что на 100% безопасно удалить код, который проверяет PQntuples и повторяет столько раз. Также я был бы не против, если бы он был больше 1. Или если бы был отдельный «режим пожарного шланга», где вы получаете записи Любые, которые были полностью переданы по сети с момента предыдущего PQgetresult...

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
120
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В однострочном режиме PQgetResult всегда будет давать результат не более чем с одной строкой. Имейте в виду, что последний возвращенный PGresult * будет пустым.

Если вы хотите, чтобы набор результатов состоял из более чем одной строки, вам придется использовать курсоры и FETCH.

Дело не в том, что я хочу, мои наборы результатов имеют определенное количество, я хотел бы сразу получить записи Любые, которые были переданы с момента последнего звонка. Но я предполагаю, что PQgetResult следующей строки вернется немедленно, если она уже передана, поэтому я рад, что вы подтвердили, что мне не нужно перебирать PGntuples с PQsetSingleRowMode, поскольку это будет либо 1, либо 0.

Stijn Sanders 18.05.2019 16:22

Другие вопросы по теме