이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다PostgreSQL : 문서 : 17 : 32.2. 토토 캔 상태 기능버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

31.2. 토토 결과 상태 기능

이러한 기능은 기존 데이터베이스 토토 결과 객체.

팁 : libpq응용 프로그램 프로그래머는를 유지해야합니다.pgconn추상화. 사용하십시오 의 내용을 얻기 위해 아래에 설명 된 액세서 기능pgconn. 내부 참조pgconn필드 사용libpq-int.h때문에 권장하지 않습니다 미래에 변화가있을 수 있습니다.

다음 함수는 설정된 매개 변수 값을 반환합니다 연결. 이 값은의 수명을 위해 고정되어 있습니다.pgconn개체.

PQDB

토토 결과의 데이터베이스 이름을 반환합니다.

char *pqdb (const pgconn *conn);
PQUSER

토토 결과의 사용자 이름을 반환합니다.

char *pquser (const pgconn *conn);
pqpass

토토 결과의 비밀번호를 반환합니다.

char *pqpass (const pgconn *conn);
pqhost

토토 결과의 서버 호스트 이름을 반환합니다.

char *pqhost (const pgconn *conn);
pqport

토토 결과 포트를 반환합니다.

char *pqport (const pgconn *conn);
pqtty

디버그를 반환tty12739_12845tty설정이지만 함수는 유지됩니다 후진 호환성을 위해.)

char *pqtty (const pgconn *conn);
pqoptions

전달 된 명령 줄 옵션을 반환합니다 토토 결과 요청.

char *pqoptions (const pgconn *conn);

다음 함수는 변경할 수있는 상태 데이터를 반환합니다. 작업은에서 실행됩니다.pgconn개체.

PQSTATUS

토토 결과 상태를 반환합니다.

Connstatustype pqstatus (const pgconn *conn);

상태는 여러 값 중 하나 일 수 있습니다. 하지만, 이 중 두 개만이 비동기 외부에서 볼 수 있습니다. 토토 결과 절차 :Connection_okandConnection_Bad. 좋은 토토 결과 데이터베이스에는 상태가 있습니다Connection_ok. 실패한 토토 결과 시도 상태에 따라 신호Connection_Bad. 일반적으로 괜찮은 상태입니다 까지 계속 남아있을 것입니다pqfinish그러나 통신 실패 상태가로 변경 될 수 있습니다.Connection_Bad조기. 이 경우 응용 프로그램은 전화를 통해 복구하려고 시도 할 수 있습니다pqreset.

입력 참조PQConnectStartParams, PQConnectStartandPQConnectPoll다른 사람과 관련하여 반환 될 수있는 상태 코드.

pqtransactionStatus

섬기는 사람.

pgtransactionStatustype pqtransactionStatus (const pgconn *conn);

상태가 될 수 있습니다pqtrans_idle(현재 유휴 상태),pqtrans_active(명령이 진행 중),pqtrans_intrans(유휴 상태 거래 블록), 또는pqtrans_inerror(유휴 상태, 실패 거래 블록).pqtrans_unknown토토 결과이 나쁘다.pqtrans_active쿼리가 서버로 전송 된 경우에만보고됩니다. 그리고 아직 완료되지 않았습니다.

주의

pqtransactionStatus줄 것입니다 a를 사용할 때 잘못된 결과PostgreSQL7.3 서버 매개 변수autocommitOFF로 설정합니다. 서버 측 자동 커밋 기능이 있습니다 더 이상 사용되지 않았으며 나중에 서버에는 존재하지 않습니다 버전.

PQPARAMETERSTATUS

서버의 현재 매개 변수 설정을 찾습니다.

const char *pqparameterstatus (const pgconn *conn, const char *paramname);

특정 매개 변수 값은 서버에서보고합니다 토토 결과 시작 또는 언제마다 가치 변화.PQPARAMETERSTATUS익숙해 질 수 있습니다 이 설정을 조사하십시오. 현재 값을 반환합니다 알려진 경우 매개 변수 또는NULLIF 매개 변수는 알려져 있지 않습니다.

현재 릴리스에 따라보고 된 매개 변수Server_version, Server_encoding, client_encoding, Application_Name, is_superuser, Session_Authorization, Datestyle, IntervalStyle, TimeZone, integer_datetimesStandard_Conforming_strings. (Server_encoding, TimeZoneinteger_datetimes8.0 이전에 출시;Standard_Conforming_strings보고되지 않았습니다 8.1 이전에 릴리스;IntervalStyle릴리스에 의해보고되지 않았습니다 8.4 이전;application_name9.0 이전에 릴리스에 의해보고되지 않았습니다.) 참고server_version, Server_encodingandinteger_dateTimes이후에 변경할 수 없습니다 스타트 업.

Pre-3.0 Protocol 서버는 매개 변수를보고하지 않습니다 설정이지만libpq값을 얻는 논리 포함server_versionandclient_encoding어쨌든. 응용 프로그램이 있습니다 사용하도록 장려PQPARAMETERSTATUS대신adhoc코드이 값을 결정합니다. (그러나 3.0 사전 토토 결과에서는 변경client_encodingviaSET토토 결과 시작 후 에 의해 반영됨PQPARAMETERSTATUS.) forServer_version, 참조pqserververion훨씬 쉬운 숫자 형태의 정보 비교.

값이없는 경우Standard_Conforming_strings보고되어 응용 프로그램은 그것을 가정 할 수 있습니다off, 즉, 백 슬래시는 문자열의 탈출로 취급됩니다 리터럴. 또한이 매개 변수의 존재를 취할 수 있습니다 Escape String Syntax (임을 나타냅니다.e '...')가 허용됩니다.

반환 된 포인터가 선언되었지만const, 실제로는 변한 스토리지를 가리 킵니다 관련pgconn구조. 포인터가 남아 있다고 가정하는 것은 현명하지 않습니다 쿼리를 가로 질러 유효합니다.

pqprotocolversion

프론트 엔드/백엔드 프로토콜을 심문합니다 사용된.

int pqprotocolversion (const pgconn *conn);

응용 프로그램은이 기능을 사용할 수 있습니다 특정 기능이 지원되는지 확인하십시오. 현재 가능한 값은 2 (2.0 프로토콜), 3 (3.0 프로토콜) 또는 0 (연결 불량). 프로토콜 버전 연결 시작이 완료된 후에는 변경되지 않지만 연결 재설정 중에 이론적으로 변경 될 수 있습니다. 3.0 프로토콜은 일반적으로 의사 소통 할 때 사용됩니다 와 함께PostgreSQL7.4 또는 나중에 서버; 7.4 이전 서버는 프로토콜 전용 프로토콜 2.0을 지원합니다. (프로토콜 1.0은 쓸모없고 지원되지 않습니다libpq.)

PQSERVERVERVERSION

백엔드 버전을 나타내는 정수를 반환합니다.

int pqserververion (const pgconn *conn);

응용 프로그램은이 기능을 사용하여 결정할 수 있습니다 연결된 데이터베이스 서버의 버전. 그만큼 숫자는 메이저, 마이너 및를 변환하여 형성됩니다 수정 번호는 2- 디지털 번호로 및 함께 추가. 예를 들어, 버전 8.1.5가됩니다 80105로 반환되고 버전 8.2는 다음과 같이 반환됩니다. 80200 (주요 제로는 표시되지 않음). 0이 반환됩니다 연결은 나쁘다.

PQERRORMESSAGE

가장 최근에 생성 된 오류 메시지를 반환합니다 토토 결과 작업.

char *pqerrormessage (const pgconn *conn);

거의 모든libpq함수는 메시지를 설정합니다PQERRORMESSAGE실패하면.libpq컨벤션, a 비어 비어PQERRORMESSAGE결과는 여러 줄로 구성 될 수 있으며 후행 Newline. 발신자는 결과를 자유롭게하지 않아야합니다 곧장. 관련이 해방 될 것입니다pgconn핸들이 전달되었습니다pqfinish. 결과 문자열은 아니어야합니다 에서 동일하게 유지 될 것으로 예상pgconn구조.

pqsocket

연결의 파일 디스크립터 번호를 얻습니다 서버에 소켓. 유효한 설명자가 더 커질 것입니다 0 이상 또는 동일; -1의 결과는 서버가 없음을 나타냅니다 연결이 현재 열려 있습니다. (이것은 바뀌지 않을 것입니다 정상 작동이지만 연결 설정 중에 변경 될 수 있습니다 또는 재설정)

int pqsocket (const pgconn *conn);
pqbackendpid

프로세스를 반환id(PID) 백엔드 프로세스 이 토토 결과 처리.

int pqbackendpid (const pgconn *conn);

백엔드PIDIS 디버깅 목적 및 비교에 유용합니다Notify메시지 (포함PID백엔드 프로세스).PID는 실행되는 프로세스에 속합니다 로컬 호스트가 아닌 데이터베이스 서버 호스트!

PQConnectionNeedSpassword

토토 결과 인증 메소드 인 경우 true를 반환합니다 (1) 비밀번호가 필요했지만 사용할 수 없었습니다. 거짓을 반환합니다 (0) 그렇지 않은 경우.

int pqconnectionneedspassword (const pgconn *conn);

이 기능은 토토 결과 실패 후에 적용 할 수 있습니다 사용자에게 비밀번호.

PQConnectionusedPassword

토토 결과 인증 메소드 인 경우 true를 반환합니다 (1) 비밀번호를 사용했습니다. 거짓을 반환합니다 (0) 그렇지 않은 경우.

int pqconnectionusedpassword (const pgconn *conn);

이 함수는 실패한 후에 적용 할 수 있습니다. 성공적인 토토 결과이 서버 여부를 감지하려고 시도합니다 암호를 요구했습니다.

pqgetssl

연결에 사용 된 SSL 구조를 반환합니다 SSL이 사용되지 않는 경우 NULL.

ssl *pqgetssl (const pgconn *conn);

이 구조는 암호화 레벨을 확인하는 데 사용될 수 있습니다. 서버 인증서 등을 확인하십시오. 참조OpenSSL문서 이 구조에 대한 정보.

정의해야합니다use_ssl순서대로 이 기능에 대한 올바른 프로토 타입을 얻으려면. 그렇게하고 있습니다 자동으로 포함됩니다SSL.HFromOpenSSL.