pqcancelcreate
#스포츠 토토 베트맨 요청을 보낼 수있는 연결을 준비합니다.
pgcancelconn *pqcancelcreate (pgconn *conn);
pqcancelcreate
a 생성pgcancelconn
객체이지만이 연결에 대한 스포츠 토토 베트맨 요청을 즉시 보내지는 않습니다. 스포츠 토토 베트맨 요청은이 연결을 통해를 사용하여 차단 방식으로 보낼 수 있습니다.pqcancelblocking
그리고 사용하지 않는 방식으로pqcancelstart
. 반환 값을 전달할 수 있습니다pqcancelstatus
확인pgcancelconn
객체가 성공적으로 생성되었습니다. 그만큼pgcancelconn
개체는 응용 프로그램에서 직접 액세스 할 수없는 불투명 구조입니다. 이것pgcancelconn
객체를 사용하여 원래 연결에서 실행중인 쿼리를 스레드 안전 방식으로 스포츠 토토 베트맨 할 수 있습니다.
스포츠 토토 베트맨 요청에 대한 연결을 설정할 때 원래 클라이언트의 많은 연결 매개 변수가 재사용됩니다. 중요한 것은 원래 연결에 연결의 암호화 및/또는 대상 호스트의 검증이 필요한 경우 (사용sslmode
또는gssencmode
), 그런 다음 취소 요청에 대한 연결은 동일한 요구 사항으로 이루어집니다. 취소 요청은 인증이 필요하지 않고 취소 요청이 제출 된 직후에 연결이 닫히기 때문에 인증 중 또는 인증 후에 만 사용되는 모든 연결 옵션은 무시됩니다..
pqcancelcreate
널이 아닌 포인터를 반환하면 전화해야합니다pqcancelfinish
완료되면 구조와 관련 메모리 블록을 처리하기 위해. 스포츠 토토 베트맨 요청이 실패했거나 포기 된 경우에도 수행해야합니다.
pqcancelblocking
#서버가 현재 명령 처리를 차단 방식으로 포기하도록 요청합니다.
int pqcancelblocking (pgcancelconn *cancelConn);
요청은 주어진 것을 통해 이루어집니다pgcancelconn
pqcancelcreate
. 의 반환 값pqcancelblocking
스포츠 토토 베트맨 요청이 성공적으로 발송 된 경우 1이고 그렇지 않은 경우 0입니다. 실패한 경우를 사용하여 오류 메시지를 검색 할 수 있습니다.pqcancelerRormessage
.
스포츠 토토 베트맨의 성공적인 파견은 요청에 어떤 영향을 미칠 것이라고 보장하지 않습니다. 스포츠 토토 베트맨가 효과적이면 스포츠 토토 베트맨 된 명령이 조기에 종료되고 오류 결과를 반환합니다. 스포츠 토토 베트맨가 실패하면 (예 : 서버가 이미 명령 처리를 수행했기 때문에) 눈에 띄는 결과는 전혀 없습니다.
pqcancelstart
pqcancelpoll
#서버가 비 블로킹 방식으로 현재 명령 처리를 포기하도록 요청합니다.
int pqcancelstart (pgcancelconn *cancelConn); postgrespollingstatustype pqcancelpoll (pgcancelconn *cancelConn);
요청은 주어진 것을 통해 이루어집니다pgcancelconn
pqcancelcreate
. 의 반환 값pqcancelstart
스포츠 토토 베트맨 요청이 시작될 수있는 경우 1이고 그렇지 않은 경우 0입니다. 실패한 경우를 사용하여 오류 메시지를 검색 할 수 있습니다.pqcancelerRormessage
.
ifpqcancelstart
성공, 다음 단계는 투표하는 것입니다libpq스포츠 토토 베트맨 연결 시퀀스를 진행할 수 있도록. 사용pqcancelsocket
데이터베이스 연결 기본 소켓의 디스크립터를 얻으려면. (주의 : 소켓이 동일하게 남아 있다고 가정하지 마십시오pqcancelpoll
전화.) 루프 : ifpqcancelpoll (cancelConn)
마지막 반품pgres_polling_reading
, 소켓이 읽을 준비가 될 때까지 기다리십시오 (select ()
, poll ()
또는 유사한 시스템 기능). 그런 다음 호출pqcancelpoll (cancelConn)
다시. 반대로, ifpqcancelpoll (cancelConn)
마지막 반품pgres_polling_writing
, 소켓이 쓸 준비가 될 때까지 기다렸다가 전화pqcancelpoll (cancelConn)
다시. 첫 번째 반복에서, 즉 아직 전화하지 않은 경우pqcancelpoll (cancelConn)
, 마지막으로 반환 된 것처럼 행동pgres_polling_writing
. 이 루프를 계속할 때까지pqcancelpoll (cancelConn)
반환pgres_polling_failed
, 연결 절차가 실패했거나pgres_polling_ok
, 스포츠 토토 베트맨 요청이 성공적으로 발송되었음을 나타냅니다.
스포츠 토토 베트맨의 성공적인 파견은 요청에 어떤 영향을 미칠 것이라고 보장하지 않습니다. 스포츠 토토 베트맨가 효과적이면 스포츠 토토 베트맨 된 명령이 조기에 종료되고 오류 결과를 반환합니다. 스포츠 토토 베트맨가 실패하면 (예 : 서버가 이미 명령 처리를 수행했기 때문에) 눈에 띄는 결과는 전혀 없습니다.
연결하는 동안 언제든지 연결 상태를 호출하여 확인할 수 있습니다pqcancelstatus
. 이 호출이 반환되는 경우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)) Case Connection_Started : 피드백 = "연결 ..."; 부서지다; Case Connection_Made : 피드백 = "서버에 연결되어 ..."; 부서지다; . . . 기본: 피드백 = "연결 ...";
theConnect_Timeout
사용 할 때 연결 매개 변수가 무시됩니다pqcancelpoll
; 과도한 시간이 경과했는지 여부를 결정하는 것은 응용 프로그램의 책임입니다. 그렇지 않으면,pqcancelstart
뒤 이후pqcancelpoll
루프는에 해당합니다.pqcancelblocking
.
pqcancelstatus
#취소 상태를 반환합니다.
Connstatustype pqcancelstatus (const pgcancelconn *cancelConn);
상태는 여러 값 중 하나 일 수 있습니다. 그러나이 중 3 개만이 비동기식 스포츠 토토 베트맨 절차 외부에서 볼 수 있습니다.Connection_Allocated
, Connection_ok
및Connection_Bad
. a의 초기 상태pgcancelconn
사용을 성공적으로 만들었습니다pqcancelcreate
isConnection_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
결과는 여러 줄로 구성 될 수 있으며 후행 Newline이 포함됩니다. 발신자는 결과를 직접 자유롭게 해제해서는 안됩니다. 관련이 해방 될 것입니다pgcancelconn
핸들이 전달되었습니다pqcancelfinish
. 결과 문자열은의 작업에서 동일하게 유지 될 것으로 예상되지 않아야합니다.pgcancelconn
구조.
pqcancelfinish
#스포츠 토토 베트맨 연결을 닫습니다 (아직 스포츠 토토 베트맨 요청을 보내지 않은 경우). 또한에 사용 된 메모리를 해방합니다.pgcancelconn
개체.
void pqcancelfinish (pgcancelconn *cancelConn);
스포츠 토토 베트맨 시도가 실패하더라도 (pqcancelstatus
), 응용 프로그램은 전화해야합니다pqcancelfinish
pgcancelconn
개체. 그만큼pgcancelconn
포인터는 다시 사용해서는 안됩니다pqcancelfinish
호출.
pqcancelreset
#재설정PGCANCELCONN
따라서 새로운 스포츠 토토 베트맨 연결을 위해 재사용 할 수 있습니다.
void pqcancelreset (pgcancelconn *cancelConn);
PGCANCELCONN
현재 취소 요청을 보내는 데 사용되면이 연결이 닫힙니다. 그런 다음 준비합니다.PGCANCELCONN
새로운 스포츠 토토 베트맨 요청을 보내는 데 사용될 수 있도록 개체
이것은 하나를 생성하는 데 사용될 수 있습니다PGCANCELCONN
aPGCONN
원래의 수명 내내 여러 번 재사용pgconn
.
이 기능은 스포츠 토토 베트맨 요청을 보내는 오래된 방법을 나타냅니다. 여전히 작동하지만 원래 연결이 지정된 경우에도 암호화 된 방식으로 스포츠 토토 베트맨 요청을 보내지 않아서는 더 이상 사용되지 않습니다sslmode
또는gssencmode
암호화가 필요합니다. 따라서 이러한 오래된 방법은 새 코드에서 사용되는 데 크게 낙담하며 기존 코드를 변경하여 새로운 기능을 대신 사용하는 것이 좋습니다.
pqgetCancel
#사용을 사용하여 명령을 스포츠 토토 베트맨하는 데 필요한 정보가 포함 된 데이터 구조를 만듭니다pqcancel
.
pgcancel *pqgetcancel (pgconn *conn);
pqgetCancel
a 생성pgcancel
주어진 객체pgconn
연결 객체. 돌아올 것입니다NULL
주어진 경우conn
isNULL
또는 잘못된 연결. 그만큼pgcancel
객체는 응용 프로그램에서 직접 액세스 할 수없는 불투명 구조입니다. 전달 될 수 있습니다pqcancel
또는PQFREECANCEL
.
PQFREECANCEL
#void pqfreecancel (pgcancel *취소);
PQFREECANCEL
이전에 생성 된 데이터 객체를 해제pqgetCancel
.
pqcancel
#pqcancel
|pqcancelblocking
그러나 신호 핸들러 내에서 안전하게 사용할 수있는 것.
int pqcancel (pgcancel *취소, char *errbuf, int errbufsize);
pqcancel
거꾸로 호환성 이유 때문에 존재합니다.pqcancelblocking
대신 사용해야합니다. 유일한 혜택pqcancel
|errbuf
는 신호 핸들러의 로컬 변수입니다. 그러나 이것은 일반적 으로이 기능이 가지고있는 보안 문제의 가치가있는 충분한 이점으로 간주되지 않습니다.
thepgcancel
개체는까지 읽기 전용입니다.pqcancel
관련이 있으므로 조작하는 것과 분리 된 스레드에서도 호출 할 수 있습니다pgconn
개체.
반환 값pqcancel
스포츠 토토 베트맨 요청이 성공적으로 발송 된 경우 1이고 그렇지 않은 경우 0입니다. 그렇지 않다면errbuf
설명 오류 메시지로 채워져 있습니다.errbuf
크기의 숯불 배열이어야합니다errbufsize
(권장 크기는 256 바이트).
PQREQUESTCANCEL
#PQREQUESTCANCEL
|pqcancelblocking
.
int pqRequestCancel (pgconn *conn);
PQREQUESTCANCEL
거꾸로 호환성 이유 때문에 존재합니다.pqcancelblocking
대신 사용해야합니다. 사용에 이점이 없습니다PQREQUESTCANCEL
Overpqcancelblocking
.
서버가 현재 명령의 처리를 포기하도록 요청합니다. 직접 작동합니다.pgconn
객체 및 고장의 경우 오류 메시지가에 저장됩니다.pgconn
개체 (PQERRORMESSAGE
). 기능은 동일하지만이 접근법은 다중 스레드 프로그램이나 신호 처리기 내에서 안전하지 않습니다.pgconn
의 오류 메시지는 현재 연결 중에 진행중인 작업이 엉망이됩니다.
38396_38622이 양식문서 문제를보고하려면