PQcancelCreate #배트맨 토토 요청을 보낼 수 있는 연결을 준비합니다.
PGcancelConn *PQcancelCreate(PGconn *conn);
PQcancelCreate생성PGcancelConn객체이지만 이 연결을 통해 즉시 취소 요청 전송을 시작하지 않습니다. 취소 요청은 다음을 사용하여 차단 방식으로 이 연결을 통해 전송될 수 있습니다.PQcancelBlocking그리고 다음을 사용하여 비차단 방식으로PQcancelStart. 반환 값은 다음으로 전달될 수 있습니다.PQcancel상태다음인지 확인하려면PGcancelConn개체가 성공적으로 생성되었습니다.PGcancelConn객체는 애플리케이션에서 직접 액세스할 수 없는 불투명 구조입니다. 이PGcancelConn개체는 스레드로부터 안전한 방식으로 원래 연결에서 실행 중인 쿼리를 배트맨 토토하는 데 사용될 수 있습니다.
원래 클라이언트의 많은 연결 매개변수는 배트맨 토토 요청에 대한 연결을 설정할 때 재사용됩니다. 중요한 것은 원래 연결에 연결 암호화 및/또는 대상 호스트 확인이 필요한 경우(sslmode또는gssencmode), 배트맨 토토 요청에 대한 연결은 이와 동일한 요구 사항으로 이루어집니다. 배트맨 토토 요청에는 인증이 필요하지 않고 배트맨 토토 요청이 제출된 직후 연결이 닫히기 때문에 인증 중이나 클라이언트 인증 후에만 사용되는 연결 옵션은 무시됩니다.
언제든지 주의하세요PQcancelCreate널이 아닌 포인터를 반환합니다. 호출해야 합니다.PQcancelFinish작업이 끝나면 구조 및 관련 메모리 블록을 폐기하기 위해. 배트맨 토토 요청이 실패하거나 포기된 경우에도 이 작업을 수행해야 합니다.
PQcancelBlocking #서버가 차단 방식으로 현재 명령 처리를 중단하도록 요청합니다.
int PQcancelBlocking(PGcancelConn *cancelConn);
요청은 주어진 것에 대해 이루어졌습니다PGcancelConn, 다음을 사용하여 생성해야 함PQcancelCreate. 반환 값은PQcancelBlocking취소 요청이 성공적으로 전달되면 1이고 그렇지 않으면 0입니다. 실패한 경우 다음을 사용하여 오류 메시지를 검색할 수 있습니다.PQcancelErrorMessage .
그러나 배트맨 토토가 성공적으로 전달되었다고 해서 요청이 효과가 있다는 보장은 없습니다. 배트맨 토토가 유효하면 배트맨 토토되는 명령이 조기 종료되고 오류 결과가 반환됩니다. 배트맨 토토가 실패하면(예: 서버가 이미 명령 처리를 완료했기 때문에) 눈에 띄는 결과가 전혀 없습니다.
PQcancelStartPQcancelPoll #서버가 비차단 방식으로 현재 명령 처리를 중단하도록 요청합니다.
int PQcancelStart(PGcancelConn *cancelConn); PostgresPollingStatusType PQcancelPoll(PGcancelConn *cancelConn);
요청은 주어진 것에 대해 이루어졌습니다PGcancelConn, 다음을 사용하여 생성해야 함PQcancelCreate. 반환 값은PQcancelStart취소 요청이 시작될 수 있으면 1이고 그렇지 않으면 0입니다. 실패한 경우 다음을 사용하여 오류 메시지를 검색할 수 있습니다.PQcancelErrorMessage .
만약PQcancelStart성공, 다음 단계는 설문 조사입니다.libpq그러면 연결 배트맨 토토 순서를 진행할 수 있습니다. 사용PQcancelSocket데이터베이스 연결의 기반이 되는 소켓의 설명자를 가져옵니다. (주의: 소켓이 동일하게 유지된다고 가정하지 마십시오.PQcancelPoll호출.) 다음과 같이 루프하세요: IfPQcancelPoll(cancelConn)마지막 반환PGRES_POLLING_READING, 소켓이 읽을 준비가 될 때까지 기다립니다(다음으로 표시됨).선택(), 설문조사()또는 유사한 시스템 기능). 그럼 전화하세요PQcancelPoll(cancelConn)다시. 반대로 만약에PQcancelPoll(cancelConn)마지막 반환PGRES_POLLING_WRITING, 소켓이 쓸 준비가 될 때까지 기다린 후 호출PQcancelPoll(cancelConn)다시. 첫 번째 반복에서, 즉 아직 전화하지 않은 경우PQcancelPoll(cancelConn), 마지막으로 반환된 것처럼 동작PGRES_POLLING_WRITING. 다음까지 이 루프를 계속하세요.PQcancelPoll(cancelConn)반환PGRES_POLLING_FAILED, 연결 절차가 실패했음을 나타냅니다. 또는PGRES_POLLING_OK, 배트맨 토토 요청이 성공적으로 전달되었음을 나타냅니다.
그러나 배트맨 토토가 성공적으로 전달되었다고 해서 요청이 효과가 있다는 보장은 없습니다. 배트맨 토토가 유효하면 배트맨 토토되는 명령이 조기 종료되고 오류 결과가 반환됩니다. 배트맨 토토가 실패하면(예: 서버가 이미 명령 처리를 완료했기 때문에) 눈에 띄는 결과가 전혀 없습니다.
연결 중 언제든지 호출을 통해 연결 상태를 확인할 수 있습니다.PQcancel상태. 이 호출이 반환되는 경우CONNECTION_BAD, 배트맨 토토 절차가 실패했습니다. 전화가 돌아오면CONNECTION_OK, 취소 요청이 성공적으로 전달되었습니다. 이 두 상태는 모두 반환 값에서 동일하게 감지할 수 있습니다.PQcancelPoll, 위에 설명되어 있습니다. 비동기 연결 절차 중에(및 도중에만) 다른 상태가 발생할 수도 있습니다. 이는 연결 절차의 현재 단계를 나타내며 예를 들어 사용자에게 피드백을 제공하는 데 유용할 수 있습니다. 상태는 다음과 같습니다.
CONNECTION_ALLOCATED #전화를 기다리는 중PQcancelStart또는PQcancelBlocking, 실제로 소켓을 엽니다. 통화 직후 연결상태입니다PQcancelCreate또는PQcancelReset. 이 시점에서는 아직 서버 연결이 시작되지 않았습니다. 실제로 취소 요청 전송을 시작하려면 다음을 사용하세요.PQcancelStart또는PQcancelBlocking.
CONNECTION_STARTED #연결이 이루어지기를 기다리는 중입니다.
CONNECTION_MADE #연결 정상; 보내기를 기다리고 있습니다.
CONNECTION_AWAITING_RESPONSE #서버의 응답을 기다리는 중입니다.
CONNECTION_SSL_STARTUP #SSL 암호화 협상 중.
CONNECTION_GSS_STARTUP #GSS 암호화 협상 중.
이러한 상수는 (호환성을 유지하기 위해) 유지되지만 응용 프로그램은 이러한 상수가 특정 순서로 발생하거나 전혀 의존해서는 안 되며 항상 문서화된 값 중 하나인 상태에 의존해서는 안 됩니다. 애플리케이션은 다음과 같은 작업을 수행할 수 있습니다.
스위치(PQcancelStatus(conn))
사례 CONNECTION_STARTED:
Feedback = "연결 중...";
부서지다;
사례 CONNECTION_MADE:
Feedback = "서버에 연결되었습니다...";
부서지다;
.
.
.
기본값:
Feedback = "연결 중...";
그connect_timeout사용 시 연결 매개변수가 무시됩니다.PQcancelPoll; 과도한 시간이 경과했는지 여부를 결정하는 것은 애플리케이션의 책임입니다. 그렇지 않으면,PQcancelStart다음에 aPQcancelPoll루프는 다음과 같습니다.PQcancelBlocking.
PQcancel상태 #연결 취소 상태를 반환합니다.
ConnStatusType PQcancelStatus(const PGcancelConn *cancelConn);
상태는 여러 값 중 하나일 수 있습니다. 그러나 비동기 취소 절차 외부에서는 다음 중 세 가지만 표시됩니다.CONNECTION_ALLOCATED, CONNECTION_OK그리고CONNECTION_BAD. a의 초기 상태PGcancelConn다음을 사용하여 성공적으로 생성되었습니다.PQcancelCreate이다CONNECTION_ALLOCATED. 성공적으로 전달된 배트맨 토토 요청의 상태는CONNECTION_OK. 실패한 배트맨 토토 시도는 상태로 표시됩니다.CONNECTION_BAD. OK 상태는 다음까지 유지됩니다.PQcancelFinish또는PQcancelReset호출됩니다.
다음 항목 참조PQcancelStart반환될 수 있는 기타 상태 코드와 관련하여.
그러나 배트맨 토토가 성공적으로 전달되었다고 해서 요청이 효과가 있다는 보장은 없습니다. 배트맨 토토가 유효하면 배트맨 토토되는 명령이 조기 종료되고 오류 결과가 반환됩니다. 배트맨 토토가 실패하면(예: 서버가 이미 명령 처리를 완료했기 때문에) 눈에 띄는 결과가 전혀 없습니다.
PQcancelSocket #서버에 대한 연결 배트맨 토토 소켓의 파일 설명자 번호를 얻습니다.
int PQcancelSocket(const PGcancelConn *cancelConn);
유효한 설명자는 0보다 크거나 같습니다. -1의 결과는 현재 열려 있는 서버 연결이 없음을 나타냅니다. 이는 이 섹션의 함수를 호출한 결과로 변경될 수 있습니다.PGcancelConn(제외PQcancelErrorMessage그리고PQcancelSocket그 자체).
PQcancelErrorMessage #연결 취소 작업으로 인해 가장 최근에 생성된 오류 메시지를 반환합니다.
char *PQcancelErrorMessage(const PGcancelConn *cancelconn);
거의 모든libpqa를 취하는 함수PGcancelConn다음에 대한 메시지를 설정합니다PQcancelErrorMessage실패할 경우. 다음을 참고하세요.libpq규칙, 비어 있지 않음PQcancelErrorMessage결과는 여러 줄로 구성될 수 있으며 후행 줄 바꿈이 포함됩니다. 호출자는 결과를 직접 해제해서는 안 됩니다. 연결된 경우 해제됩니다.PGcancelConn핸들이 다음으로 전달됨PQcancelFinish. 결과 문자열은 여러 작업에서 동일하게 유지될 것으로 예상해서는 안 됩니다.PGcancelConn구조.
PQcancelFinish #배트맨 토토 연결을 닫습니다(아직 배트맨 토토 요청 전송이 완료되지 않은 경우). 또한에서 사용하는 메모리를 해제합니다.PGcancelConn객체.
void PQcancelFinish(PGcancelConn *cancelConn);
취소 시도가 실패하더라도 (다음으로 표시됨)PQcancel상태), 애플리케이션은 호출해야 합니다.PQcancelFinish다음에서 사용하는 메모리를 해제합니다.PGcancelConn객체.PGcancelConn포인터는 이후에 다시 사용되어서는 안 됩니다PQcancelFinish호출되었습니다.
PQcancelReset #재설정PGcancelConn따라서 새로운 배트맨 토토 연결에 재사용할 수 있습니다.
void PQcancelReset(PGcancelConn *cancelConn);
만약에PGcancelConn은 현재 취소 요청을 보내는 데 사용되며, 이 연결은 닫힙니다. 그런 다음 다음을 준비합니다.PGcancelConn새 배트맨 토토 요청을 보내는 데 사용할 수 있는 개체입니다.
이것은 하나를 만드는 데 사용될 수 있습니다.PGcancelConn에 대한PGconn원본의 수명 동안 여러 번 재사용PGconn.
이 함수는 배트맨 토토 요청을 보내는 오래된 방법을 나타냅니다. 여전히 작동하지만 원래 연결이 지정된 경우에도 암호화된 방식으로 배트맨 토토 요청을 보내지 않기 때문에 더 이상 사용되지 않습니다.sslmode또는gssencmode암호화가 필요합니다. 따라서 이러한 이전 메서드는 새 코드에서 사용되는 것을 크게 권장하지 않으며, 대신 새 함수를 사용하도록 기존 코드를 변경하는 것이 좋습니다.
PQgetCancel #다음을 사용하여 명령을 취소하는 데 필요한 정보가 포함된 데이터 구조를 생성합니다.PQ배트맨 토토.
PGcancel *PQgetCancel(PGconn *conn);
PQgetCancel생성PG배트맨 토토객체 주어진 aPGconn연결 개체. 돌아올 것이다NULL주어진 경우콘이다NULL또는 잘못된 연결입니다.PG배트맨 토토개체는 애플리케이션에서 직접 액세스할 수 없는 불투명 구조입니다. 오직 전달될 수 있습니다.PQ배트맨 토토또는PQfree배트맨 토토.
PQfree배트맨 토토 #다음에 의해 생성된 데이터 구조를 해제합니다.PQgetCancel.
void PQfreeCancel(PGcancel *cancel);
PQfree배트맨 토토이전에 다음에 의해 생성된 데이터 개체를 해제합니다.PQgetCancel.
PQ배트맨 토토 #PQ배트맨 토토더 이상 사용되지 않으며 안전하지 않은 변형입니다.PQcancelBlocking, 그러나 신호 처리기 내에서 안전하게 사용할 수 있는 것입니다.
int PQcancel(PGcancel *cancel, char *errbuf, int errbufsize);
PQ배트맨 토토이전 버전과의 호환성 때문에 존재합니다.PQcancelBlocking33971_34020PQ배트맨 토토다음과 같은 경우 신호 처리기에서 안전하게 호출할 수 있다는 것입니다.errbuf은 신호 처리기의 지역 변수입니다. 그러나 이는 일반적으로 이 기능이 가지고 있는 보안 문제를 감당할 만큼 큰 이점으로 간주되지 않습니다.
그PG배트맨 토토개체는 읽기 전용입니다.PQ배트맨 토토관련되어 있으므로 조작하는 스레드와 별도의 스레드에서 호출할 수도 있습니다.PGconn객체.
반환 값PQ배트맨 토토배트맨 토토 요청이 성공적으로 전달되면 1이고 그렇지 않으면 0입니다. 그렇지 않다면,errbuf설명 오류 메시지로 채워져 있습니다.errbuf크기의 문자 배열이어야 합니다errbufsize(권장 크기는 256바이트).
PQ요청 배트맨 토토 #PQ요청배트맨 토토더 이상 사용되지 않으며 안전하지 않은 변형입니다.PQcancelBlocking.
int PQrequestCancel(PGconn *conn);
PQ요청 배트맨 토토이전 버전과의 호환성 때문에 존재합니다.PQcancelBlocking36227_36283PQ요청배트맨 토토이상PQcancelBlocking.
서버가 현재 명령 처리를 중단하도록 요청합니다. 에서 직접 운영됩니다.PGconn객체이며, 실패할 경우 오류 메시지를에 저장합니다.PGconn객체(검색할 수 있는 대상PQerrorMessage). 기능은 동일하지만 이 접근 방식은 다중 스레드 프로그램이나 신호 처리기 내에서 안전하지 않습니다.PGconn의 오류 메시지는 현재 연결에서 진행 중인 작업을 망칠 것입니다.
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.