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

31.6. 진행중인 쿼리 취소

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

pqgetCancel

필요한 정보가 포함 된 데이터 구조를 만듭니다 특정 데이터베이스를 통해 발행 된 명령을 취소하십시오 연결.

pgcancel *pqgetcancel (pgconn *conn);

pqgetCancela 생성pgcancel주어진 대상pgconn연결 객체. 돌아올 것입니다NULL주어진 경우connisnull또는 유효하지 않습니다 연결. 그만큼pgcancel객체는 an입니다 직접 액세스 할 수없는 불투명 구조 애플리케이션; 전달 될 수 있습니다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안전하게 호출 할 수 있습니다 신호 핸들러에서errbufIS 신호 핸들러의 로컬 변수. 그만큼pgcancel객체는 읽기 전용으로pqcancel걱정이되므로 가능합니다 조작과 분리 된 스레드에서 호출됩니다. 그만큼pgconnObject.

PQREQUESTCANCEL

PQREQUESTCANCEL는 더 이상 사용되지 않습니다 변형pqcancel.

int pqrequestCancel (pgconn *conn);

서버가 현재의 처리를 포기하도록 요청합니다 명령. 직접 작동합니다.pgconn객체 및 실패의 경우 의 오류 메시지pgconn개체 (그것을 검색 할 수있을 때PQERRORMESSAGE). 기능은 있지만 마찬가지로,이 접근법은 여러 스레드에 대한 위험을 야기합니다 프로그램 및 신호 처리기는 이어보고가 가능하기 때문에 그만큼pgconn의 오류 메시지가 엉망이됩니다 현재 연결에서 진행중인 작업.