32.6. 토토 커뮤니티 결과를 청크 단위로 검색#

보통,libpqSQL 명령의 전체 결과를 수집하여 단일로 응용프로그램에 반환합니다.PGresult. 많은 수의 행을 반환하는 명령의 경우 이는 작동하지 않을 수 있습니다. 이러한 경우 애플리케이션은 다음을 사용할 수 있습니다.PQsendQuery그리고PQgetResult단일 행 모드또는청크 모드. 이러한 모드에서는 결과 행이 서버에서 수신될 때 단일 행 모드의 경우 한 번에 하나씩, 청크 모드의 경우 그룹으로 애플리케이션에 반환됩니다.

이러한 모드 중 하나를 입력하려면 다음을 호출하세요.PQsetSingleRowMode또는PQsetChunkedRowsMode성공적인 호출 직후PQsendQuery(또는 형제 함수). 이 모드 선택은 현재 실행 중인 쿼리에만 유효합니다. 그럼 전화하세요PQgetResult에 설명된 대로 null을 반환할 때까지 반복적으로PostgreSQL : 문서 : 17 : 32.4. 비동기 스포츠 토토 결과 처리. 토토 커뮤니티가 행을 반환하는 경우 하나 이상의 행으로 반환됩니다.PGresult상태 코드가 있는 것을 제외하면 정상적인 토토 커뮤니티 결과처럼 보이는 개체PGRES_SINGLE_TUPLE단일 행 모드의 경우 또는PGRES_TUPLES_CHUNK청크 모드의 경우PGRES_TUPLES_OK. 각각에는 정확히 하나의 결과 행이 있습니다.PGRES_SINGLE_TUPLE객체, 동안PGRES_TUPLES_CHUNK개체에는 최소한 하나의 행이 포함되어 있지만 청크당 지정된 행 수를 초과할 수는 없습니다. 마지막 행 뒤 또는 쿼리가 0개 행을 반환하는 경우 즉시 상태가 있는 0개 행 객체PGRES_TUPLES_OK반환되었습니다. 이는 더 이상 행이 도착하지 않는다는 신호입니다. (단, 계속 통화해야 한다는 점 참고하세요.PQgetResultnull을 반환할 때까지.) 이들 모두PGresult객체에는 일반 객체와 동일한 행 설명 데이터(열 이름, 유형 등)가 포함됩니다.PGresult질의에 대한 개체가 있을 것입니다. 각 객체는 다음을 사용하여 해제되어야 합니다.PQclear평소처럼.

파이프라인 모드를 사용할 때 해당 쿼리에 대한 결과를 검색하기 전에 파이프라인의 각 쿼리에 대해 단일 행 또는 청크 모드를 활성화해야 합니다.PQgetResult. 참조PostgreSQL : 문서 : 17 : 32.5. 파이프 토토 꽁 머니 모드더 많은 정보를 원하시면.

PQsetSingleRowMode #

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

int PQsetSingleRowMode(PGconn *conn);

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

PQsetChunkedRowsMode #

현재 실행 중인 쿼리에 대한 청크 모드를 선택하십시오.

int PQsetChunkedRowsMode(PGconn *conn, int ChunkSize);

이 기능은 다음과 유사합니다.PQsetSingleRowMode, 단, 최대 검색을 지정하는 경우는 제외)청크크기행당PGresult, 꼭 하나의 행일 필요는 없습니다. 이 함수는 다음 직후에만 호출할 수 있습니다.PQsendQuery또는 그 형제 함수 중 하나, 다음과 같은 연결에 대한 다른 작업 이전에PQconsumeInput또는PQgetResult. 올바른 시간에 호출되면 함수는 현재 쿼리에 대해 청크 모드를 활성화하고 1을 반환합니다. 그렇지 않으면 모드는 변경되지 않고 함수는 0을 반환합니다. 어떤 경우에도 모드는 현재 쿼리가 완료된 후 정상으로 되돌아갑니다.

주의

토토 커뮤니티를 처리하는 동안 서버가 일부 행을 반환한 후 오류가 발생하여 토토 커뮤니티가 중단될 수 있습니다. 일반적으로,libpq해당 행을 삭제하고 오류만 보고합니다. 그러나 단일 행 또는 청크 모드에서는 일부 행이 이미 애플리케이션에 반환되었을 수 있습니다. 따라서 애플리케이션에는 일부가 표시됩니다.PGRES_SINGLE_TUPLE또는PGRES_TUPLES_CHUNK PGresult객체 다음에 aPGRES_FATAL_ERROR객체. 올바른 트랜잭션 동작을 위해서는 쿼리가 최종적으로 실패할 경우 이전에 처리된 행에 수행된 모든 작업을 삭제하거나 실행 취소하도록 애플리케이션을 설계해야 합니다.

수정사항 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.