이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다PostgreSQL : 문서 : 17 : 32.7. 진행중인 쿼리 스포츠 토토 베트맨버전 또는 위에 나열된 다른 지원되는 버전 중 하나입니다.

30.5. 진행중인 쿼리 취소

클라이언트 응용 프로그램은 명령 취소를 요청할 수 있습니다 기능을 사용하여 서버에서 여전히 처리 중입니다. 이 섹션에 설명되어 있습니다.

pqgetCancel

정보가 포함 된 데이터 구조를 만듭니다 특정을 통해 발행 된 명령을 취소해야합니다 데이터베이스 연결.

pgcancel *pqgetCancel (pgconn *conn);

pqgetCancela 생성pgcancel주어진 대상pgconn연결 객체. 돌아올 것입니다 주어진 경우 nullconn또는 잘못된 연결. 그만큼pgcancel객체는 불투명 한 구조입니다 그것은 애플리케이션; 전달 될 수 있습니다pqcancel또는PQFREECANCEL.

PQFREECANCEL

pqgetCancel.

void pqfreecancel (pgcancel *cancel);

PQFREECANCEL데이터를 해제합니다 이전에 객체에 의해 생성 된 개체pqgetCancel.

pqcancel

서버가 처리를 포기하도록 요청합니다 현재 명령.

int pqcancel (pgcancel *취소, char *errbuf, int errbufsize);

취소 요청이있는 경우 반환 값은 1입니다. 성공적으로 파견되고 그렇지 않은 경우 0. 그렇지 않다면errbuf오류 메시지로 채워집니다 왜 그렇지 않은지 설명.errbuf필수 크기의 숯불 배열이 되십시오errbufsize(권장 크기는 256입니다 바이트).

성공적인 파견은 요청을 보장하지 않습니다 그러나 어떤 영향을 미칩니다. 취소가있는 경우 효과적으로, 현재 명령은 조기에 종료됩니다 오류 결과를 반환하십시오. 취소가 실패하면 서버가 이미 처리를 수행했기 때문입니다 명령), 그러면 눈에 보이는 결과는 전혀 없을 것입니다.

pqcancel안전하게 할 수 있습니다 신호 핸들러에서 호출,errbuf는 신호의 로컬 변수입니다 매니저. 그만큼pgcancel객체입니다 까지 읽기 전용pqcancel걱정이되므로 스레드에서 호출 할 수도 있습니다. 조작하는 것과 분리되어 있습니다pgconn개체.

pqRequestCancel

서버가 처리를 포기하도록 요청합니다 현재 명령.

int pqRequestCancel (pgconn *conn);

PQREQUESTCANCELis 의 더 이상 사용되지 않는 변형pqcancel. 직접 작동합니다.pgconn객체 및의 경우 실패는에 오류 메시지를 저장합니다.pgconn객체 (그것을 검색 할 수 있습니다 에 의해PQERRORMESSAGE). 하지만 기능은 동일 하며이 접근법이 생성됩니다 다중 스레드 프로그램 및 신호 처리기의 위험, 를 덮어 쓸 수 있기 때문에pgconn의 오류 메시지가 엉망입니다 현재 연결 진행 중입니다.