이 문서는 지원되지 않는 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);
PQ패스

윈 토토 비밀번호를 반환합니다.

char *PQpass(const PGconn *conn);
PQ호스트

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

char *PQhost(const PGconn *conn);
PQ포트

윈 토토 포트를 반환합니다.

char *PQport(const PGconn *conn);
PQtty

디버그를 반환합니다.TTY의 윈 토토. (서버가 더 이상 비용을 지불하지 않으므로 이는 더 이상 사용되지 않습니다. 주의TTY설정, 하지만 이전 버전과의 호환성을 위해 이 기능은 그대로 유지됩니다.)

char *PQtty(const PGconn *conn);
PQ옵션

윈 토토에 전달된 명령줄 옵션을 반환합니다. 요구.

char *PQoptions(const PGconn *conn);

다음 함수는 다음과 같이 변경될 수 있는 상태 데이터를 반환합니다. 작업은에서 실행됩니다.PGconn객체.

PQ상태

윈 토토 상태를 반환합니다.

ConnStatusType PQstatus(const PGconn *conn);

상태는 여러 값 중 하나일 수 있습니다. 다만, 단 2개 이들 중 비동기 윈 토토 절차 외부에서 볼 수 있습니다.CONNECTION_OK그리고CONNECTION_BAD. 데이터베이스에 대한 좋은 윈 토토 상태가 있습니다CONNECTION_OK. 실패했습니다 윈 토토 시도는 상태로 표시됩니다.CONNECTION_BAD. 일반적으로 OK 상태가 유지됩니다. 그래서 그때까지PQfinish하지만 통신 실패로 인해 상태가 다음으로 변경될 수 있습니다.CONNECTION_BAD조기. 그런 경우에는 애플리케이션은 다음을 호출하여 복구를 시도할 수 있습니다.PQreset.

다음 항목 참조PQconnectStartParams, PQconnectStart그리고PQconnectPoll기타 상태 코드에 관하여 반환될 수도 있습니다.

PQ트랜잭션상태

서버의 현재 트랜잭션 진행 상태를 반환합니다.

PGTransactionStatusType PQtransactionStatus(const PGconn *conn);

상태는 다음과 같습니다.PQTRANS_IDLE(현재 유휴 상태),PQTRANS_ACTIVE(a 명령이 진행 중입니다),PQTRANS_INTRANS(유휴, 유효한 트랜잭션 블록에서) 또는PQTRANS_INERROR(유휴, 실패한 트랜잭션에서 차단하다).PQTRANS_UNKNOWN다음과 같은 경우 보고됩니다. 연결 상태가 좋지 않습니다.PQTRANS_ACTIVE이 쿼리가 서버로 전송되었지만 아직 전송되지 않은 경우에만 보고됩니다. 완전한.

주의

PQ트랜잭션상태줄 것이다 a를 사용할 때 잘못된 결과포스트그레SQL7.3 매개변수가 있는 서버자동 커밋꺼짐으로 설정되었습니다. 서버 측 자동 커밋 기능은 더 이상 사용되지 않으며 이후에는 존재하지 않습니다. 서버 버전.

PQ매개변수상태

서버의 현재 매개변수 설정을 조회합니다.

const char *PQparameterStatus(const PGconn *conn, const char *paramName);

특정 매개변수 값이 서버에 의해 보고됩니다 윈 토토 시작 시 또는 해당 값이 나타날 때마다 자동으로 변화.PQ매개변수상태사용 가능 이러한 설정을 조사합니다. 현재 값을 반환합니다. 알려진 경우 매개변수 또는NULL만약 매개변수를 알 수 없습니다.

현재 릴리스에서 보고된 매개변수는 다음과 같습니다.서버_버전, 서버_인코딩, client_encoding, 응용프로그램_이름, is_superuser, session_authorization, 날짜 스타일, 간격 스타일, 시간대, integer_datetimesstandard_conforming_strings. (서버_인코딩, 시간대, 그리고integer_datetimes다음에 의해 보고되지 않았습니다. 8.0 이전 릴리스;standard_conforming_strings다음에 의해 보고되지 않았습니다. 8.1 이전 릴리스;간격 스타일아님 8.4 이전 릴리스에서 보고됨;애플리케이션_이름이전 릴리스에서는 보고되지 않았습니다. 9.0.) 참고서버_버전, 서버_인코딩그리고integer_datetimes시작 후에는 변경할 수 없습니다.

3.0 이전 프로토콜 서버는 매개변수 설정을 보고하지 않지만libpq얻기 위한 논리가 포함되어 있습니다. 에 대한 값서버_버전그리고client_encoding어쨌든. 신청을 권장합니다 사용하다PQ매개변수상태대신임시코드를 사용하여 이 값을 결정합니다. (그러나 3.0 이전 연결에서는 다음 사항이 변경된다는 점에 유의하세요.client_encoding경유세트윈 토토 시작 후 반영되지 않음PQ매개변수상태.) For서버_버전, 또한 참조PQ서버 버전, 다음의 정보를 반환합니다. 비교하기가 훨씬 쉬운 숫자 형식입니다.

다음 값이 없는 경우standard_conforming_strings이 보고되었습니다. 애플리케이션은 다음과 같다고 가정할 수 있습니다.꺼짐그건 즉, 백슬래시는 문자열 리터럴에서 이스케이프로 처리됩니다. 또한, 이 매개변수의 존재는 다음을 나타내는 것으로 간주될 수 있습니다. 이스케이프 문자열 구문(이'...')은 받아들여졌습니다.

반환된 포인터가 선언되었지만const, 실제로는 변경 가능한 저장소를 가리킵니다. 와 연관됨PGconn구조. 그것 포인터가 전체에서 유효하다고 가정하는 것은 현명하지 않습니다. 쿼리.

PQ프로토콜 버전

사용 중인 프런트엔드/백엔드 프로토콜을 조사합니다.

int PQprotocolVersion(const PGconn *conn);

응용프로그램은 이 기능을 사용하여 다음을 결정할 수 있습니다. 특정 기능이 지원되는지 여부. 현재 가능한 값은 2(2.0 프로토콜), 3(3.0 프로토콜) 또는 0(연결)입니다. 나쁜). 연결 시작 후 프로토콜 버전은 변경되지 않습니다. 완료되었지만 이론적으로 연결 중에 변경될 수 있습니다. 다시 놓기. 3.0 프로토콜은 일반적으로 통신할 때 사용됩니다. 와 함께포스트그레SQL7.4 이상 서버; 7.4 이전 서버는 프로토콜 2.0만 지원합니다. (프로토콜 1.0 더 이상 사용되지 않으며 지원되지 않습니다.libpq.)

PQ서버버전

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

int PQserverVersion(const PGconn *conn);

응용 프로그램은 이 기능을 사용하여 버전을 확인할 수 있습니다. 연결된 데이터베이스 서버. 숫자는 다음과 같이 구성됩니다. 메이저, 마이너, 개정 번호를 다음으로 변환합니다. 두 개의 십진수 숫자를 함께 추가합니다. 예를 들어, 버전 8.1.5는 80105로 반환되고 버전 8.2는 80200으로 반환됩니다(선행 0은 표시되지 않음). 0이 반환됩니다. 연결이 나쁜 경우.

PQerrorMessage

가장 최근에 생성된 오류 메시지를 반환합니다. 윈 토토에 대한 작업입니다.

char *PQerrorMessage(const PGconn *conn);

거의 모든libpq함수는 메시지 설정해 줘PQerrorMessage만약 그들은 실패합니다. 다음을 참고하세요.libpq규칙, 비어 있지 않음PQerrorMessage결과는 여러 줄로 구성될 수 있으며 후행을 포함합니다. 개행. 호출자는 결과를 직접 해제해서는 안 됩니다. 그것은 될 것이다 윈 토토된 경우 해제됨PGconn처리 다음으로 전달됩니다.PQfinish. 결과 문자열은 작업 전반에 걸쳐 동일하게 유지될 것으로 예상해서는 안 됩니다. 에PGconn구조.

PQsocket

연결 소켓의 파일 설명자 번호를 얻습니다. 서버. 유효한 설명자는 0보다 크거나 같습니다. -1의 결과는 현재 서버 연결이 없음을 나타냅니다. 열려 있는. (정상 작동 중에는 변경되지 않지만, 연결 설정 또는 재설정 중에 변경됩니다.)

int PQsocket(const PGconn *conn);
PQbackendPID

프로세스를 반환합니다.ID(PID) 이 연결을 처리하는 백엔드 프로세스의 내용입니다.

int PQbackendPID(const PGconn *conn);

백엔드PID다음에 유용합니다. 디버깅 목적 및 비교를 위해알림메시지(포함PID알림 백엔드 프로세스의). 메모 그PID다음에 속합니다. 로컬이 아닌 데이터베이스 서버 호스트에서 실행되는 프로세스 주인!

PQconnectionNeedsPassword

연결 인증 방법이 일치하는 경우 true(1)를 반환합니다. 비밀번호가 필요했지만 사용할 수 있는 비밀번호가 없습니다. 다음과 같은 경우 거짓(0)을 반환합니다. 아니다.

int PQconnectionNeedsPassword(const PGconn *conn);

이 기능은 윈 토토 시도 실패 후에 적용될 수 있습니다 사용자에게 비밀번호를 묻는 메시지를 표시할지 여부를 결정합니다.

PQconnectionUsedPassword

연결 인증 방법이 다음을 사용한 경우 true(1)를 반환합니다. 비밀번호. 그렇지 않은 경우 false(0)를 반환합니다.

int PQconnectionUsedPassword(const PGconn *conn);

이 기능은 실패 또는 성공 후에 적용될 수 있습니다. 서버가 요청했는지 여부를 감지하기 위한 윈 토토 시도 비밀번호.

PQgetssl

윈 토토에 사용된 SSL 구조를 반환하거나 SSL인 경우 null을 반환합니다. 사용되지 않습니다.

void *PQgetssl(const PGconn *conn);

이 구조는 암호화 수준을 확인하는 데 사용할 수 있습니다. 서버 인증서 등. 참조오픈SSL정보에 대한 문서 이 구조.

실제 반환 값은 유형입니다.SSL *, 어디SSL는 다음에서 정의한 유형입니다.오픈SSL라이브러리이지만 그렇지 않습니다. 다음을 요구하지 않기 위해 이런 방식으로 선언했습니다.오픈SSL헤더 파일. 이 기능을 사용하려면, 다음 줄의 코드를 사용할 수 있습니다.

#include <libpq-fe.h
#include <openssl/ssl.h

...

    SSL *ssl;

    dbconn = PQconnectdb(...);
    ...

    ssl = PQgetssl(dbconn);
    만약 (ssl)

        /* OpenSSL 기능을 사용하여 SSL에 액세스 */