이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : 32.6. 토토 사이트 추천 검색 결과 chunks버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

31.5. 쿼리 결과 검색 행 단위

보통,libpq수집 SQL 명령의 전체 결과를 애플리케이션에 반환합니다. 싱글PGresult. 이것은 실행 불가능할 수 있습니다 많은 수의 행을 반환하는 명령의 경우. 그러한 경우에는 응용 프로그램은 사용할 수 있습니다PQsendQuery그리고PQgetResultin단일 행 모드. 이 모드에서는 결과 행이 수신된 대로 한 번에 하나씩 애플리케이션으로 반환됩니다. 서버에서.

단일 행 모드로 들어가려면 다음을 호출하세요.PQsetSingleRowMode성공 직후 호출PQsendQuery(또는 형제자매 기능). 이 모드 선택은 현재 쿼리를 실행 중입니다. 그럼 전화하세요PQgetResult다음과 같이 null을 반환할 때까지 반복적으로 문서화됨PostgreSQL : 문서 : 9.3 : 비동기 토토 처리. 만약 쿼리는 모든 행을 반환하며 개별적으로 반환됩니다.PGresult일반 쿼리처럼 보이는 객체 상태 코드가 있는 것을 제외한 결과PGRES_SINGLE_TUPLE대신PGRES_TUPLES_OK. 마지막 행 뒤 또는 즉시 쿼리가 0개의 행을 반환하는 경우 상태가 있는 0개의 행 객체PGRES_TUPLES_OK반환되었습니다. 이것은 더 이상 행이 도착하지 않는다는 신호를 보냅니다. (하지만 아직은 그렇다는 걸 알아두세요. 계속 통화하려면 필요함PQgetResultnull을 반환할 때까지.) 이들 모두PGresult개체에는 동일한 내용이 포함됩니다 일반적인 행 설명 데이터(열 이름, 유형 등)PGresult질의에 대한 개체는 있다. 각 객체는 다음을 사용하여 해제되어야 합니다.PQclear평소대로요.

PQsetSingleRowMode

현재 실행 중인 쿼리에 대해 단일 행 모드를 선택하십시오.

int PQsetSingleRowMode(PGconn *conn);

이 함수는 직후에만 호출될 수 있습니다.PQsendQuery또는 그 형제 함수 중 하나, 다음과 같은 연결에 대한 다른 작업 전에PQconsumeInput또는PQgetResult. 정확한 시간에 호출되면, 함수는 현재 쿼리에 대해 단일 행 모드를 활성화하고 1을 반환합니다. 그렇지 않으면 모드는 변경되지 않고 유지되며 함수는 0을 반환합니다. 어떤 경우든 완료 후 모드는 정상으로 돌아갑니다. 현재 쿼리 중 하나입니다.

주의

질의를 처리하는 동안 서버는 일부 행을 반환할 수 있으며 그런 다음 오류가 발생하여 쿼리가 중단됩니다. 일반적으로,libpq모든 항목을 삭제합니다. 이러한 행은 오류만 보고합니다. 하지만 단일 행 모드에서는 행은 이미 애플리케이션에 반환되었을 것입니다. 따라서, 애플리케이션에 일부가 표시됩니다.PGRES_SINGLE_TUPLE PGresult객체 다음에 aPGRES_FATAL_ERROR객체. 올바른 거래를 위해 동작을 취소하거나 취소할 수 있도록 애플리케이션을 설계해야 합니다. 이전에 처리된 행에 대해 수행된 작업이 무엇이든 쿼리가 결국 실패합니다.