이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다현재버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

32.5. 사설 토토 결과 검색 row-row

보통,libpqSQL 명령의 전체 결과를 수집하여 응용 프로그램에 단일로 반환합니다pgresult. 많은 수의 행을 반환하는 명령에 대해서는 불가능할 수 있습니다.pqsendqueryandpqgetresultin단일 로우 모드. 이 모드에서는 결과 행이 서버에서 수신되면서 한 번에 하나씩 응용 프로그램으로 반환됩니다.

싱글 열 모드로 들어가려면 전화pqsetsinglerowmode성공적인 전화 직후pqsendquery(또는 형제 기능). 이 모드 선택은 현재 실행중인 쿼리에만 효과적입니다.pqgetresult반복적으로, null을 반환 할 때까지, 문서화 된대로섹션 32.4. 사설 토토가 행을 반환하면 개인으로 반환됩니다pgresult객체, 상태 코드를 제외한 일반적인 사설 토토 결과처럼 보이는 객체pgres_single_tuple대신pgres_tuples_ok. 마지막 행 후 또는 사설 토토가 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개체. 적절한 트랜잭션 동작을 위해, 쿼리가 궁극적으로 실패하면 이전에 처리 된 행으로 수행 된 모든 것을 폐기하거나 취소하도록 애플리케이션이 설계되어야합니다..