이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다PostgreSQL : 문서 : 17 : 32.1. 데이터베이스 토토 커뮤니티 제어 기능버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

1.2.

다음 루틴은 A와 연결을 다루는 것을 다룹니다PostgreSQL백엔드 서버. 그만큼pgconn에서 얻은 객체PQCONNECTDB또는pqsetdblogin. 이러한 기능은 그럴 것입니다pgconn개체. 그만큼PQSTATUS함수를 확인하도록 요청해야합니다

  • PQCONNECTDB새로운 것을 만듭니다

    pgconn *pqconnectdb (const char *conninfo)

    이 루틴은 그것을 사용하여 새로운 데이터베이스 토토을 엽니 다Conninfo. 같지 않은pqsetdblogin아래에서 매개 변수 세트가 할 수 있습니다PQConnectStartandPQConnectPoll응용 프로그램에 선호됩니다

    각 매개 변수 설정은 양식에 있습니다keyword = value. (빈 값 또는 a를 작성하려면keyword = 'value'. 하나의\ '또는\\.) 동일한 부호 주변의 공간은입니다

    호스트

    연결할 호스트 이름. 이것이 시작되면 a/tmp.

    hostaddr

    연결할 호스트의 IP 주소. 이것은 들어와야합니다inet_atonet

    사용hostaddr대신hostaddr, 호스트 이름 조회가 강요됩니다.hostaddr지정되어 있습니다hostaddr원격 주소를 제공합니다. 만약에hostaddrhostaddr원격 주소를 제공합니다. 그만큼libpqishostaddr.

    호스트 이름 또는 호스트 주소가 없으면libpq토토됩니다

    포트

    서버 호스트에서 연결할 포트 번호 또는

    dbname

    데이터베이스 이름.

    사용자

    사용자 이름으로 연결합니다.

    비밀번호

    서버가 암호를 요구하는 경우 사용할 비밀번호

    옵션

    서버로 전송할 추적/디버그 옵션.

    tty

    파일 또는tty

    요구 사항

    백엔드에 SSL 토토을 요구하려면 1으로 설정합니다.libpq그런 다음 거부됩니다

    매개 변수가 지정되지 않은 경우 해당섹션)가 확인됩니다. 환경 변수가 설정되지 않은 경우

  • pqsetdblogin새로운 것을 만듭니다

    pgconn *pqsetdblogin (const char *pghost,

    이것은의 전임자입니다.PQCONNECTDB고정 된 수의

  • pqsetdb새로운 것을 만듭니다

    pgconn *pqsetdb (char *pghost,

    이것은 호출하는 매크로입니다pqsetdblogin로그인andPWD매개 변수. 주로 제공됩니다

  • PQConnectStart, PQConnectPoll a의 데이터베이스 서버에 토토합니다

    PGCONN *PQCONNECTSTART (const char *conninfo)
    PostGrespollingStatUstype PQConnectPoll (PGCONN *CONN)

    이 두 루틴은

    데이터베이스 연결은 취한 매개 변수를 사용하여 이루어집니다Conninfo, 전달PQConnectStart. 이 문자열입니다PQCONNECTDB.

    아니PQConnectStartNORPQConnectPoll

    • thehostaddrand호스트매개 변수는 적절하게 사용됩니다PQCONNECTDB

    • 전화하면pqtrace,

    • 당신은 소켓이PQConnectPoll, 아래 설명 된대로.

    시작하려면 전화conn = pqConnectStart ( "Connection_info_string"). 만약에connlibpq새로운 것을 할당 할 수 없었습니다pgconn구조. 그렇지 않으면, apgconn포인터가 반환됩니다PQConnectStart, Call상태 = pqstatus (conn). 상태와 같은 경우Connection_Bad, PQConnectStart실패했습니다.

    ifPQConnectStart성공,libpq"비활성"기본적으로. 만약에PQConnectPoll마지막 반품pgres_polling_active, 고려"Active"대신. 만약에PQConnectPoll (Conn)마지막 반품pgres_polling_reading, a 수행select ()읽기pqsocket (conn). 마지막으로pgres_polling_writing,select ()글쓰기pqsocket (conn). 당신이 있다면PQConnectPoll, 즉PQConnectStart는 마치 마치 마치 마치 행동합니다pgres_polling_writing. 만약에select ()"Active". 그것이 결정 되었다면 이것"Active", CallPQConnectPoll (Conn)다시. 만약에pgres_polling_failed, 토토 절차pgres_polling_ok, 토토은 있습니다

    사용select ()소켓이 준비되었는지 확인합니다poll ()전화, 물론 대신 사용할 수 있습니다.

    토토하는 동안 언제든지PQSTATUS. 이것이 인 경우Connection_Bad, 그런 다음 연결 절차Connection_ok, 그러면 토토이 있습니다PQConnectPoll, 위와 같이. 다른 주가 5 월

    Connection_started

    토토이 이루어지기를 기다리고 있습니다.

    Connection_Made

    토토 확인; 보내기를 기다리고 있습니다.

    Connection_awaiting_Response

    서버에서 응답을 기다리고 있습니다.

    Connection_auth_ok

    인증을 받았습니다. 토토을 기다리고 있습니다

    Connection_Setenv

    협상 환경 (토토의 일부

    이 상수는 여전히 남아있을 것입니다

    스위치 (pqstatus (conn))

    ifPQConnectStart널 비 널 포인터를 반환하면 전화해야합니다pqfinish당신이 그것을 끝내면, inPQConnectStart또는PQConnectPoll실패.

    PQConnectPoll현재libpq편집되었습니다use_ssl정의. 이것

    이 기능은 소켓을 비 블로킹 상태로 남겨 둡니다.pqsetnonBlocking

  • pqconndefaults반환

    pqconninfooption *pqconndefaults (void)

    연결 옵션 배열을 반환합니다. 이것은 익숙 할 수 있습니다PQCONNECTDB옵션 및 현재pqconninfooptionstructsval필드)

    옵션 배열을 처리 한 후 전달하여 자유롭게 해방PQCONNINFOFREE. 이것이 있다면pqconndefaults.

    inPostgreSQL버전pqconndefaults

  • pqfinishpgconn개체.

    void pqfinish (pgconn *conn)

    백엔드 토토 시도가 실패하더라도PQSTATUS), Thepqfinishpgconn개체. 그만큼pgconn포인터를 사용해서는 안됩니다pqfinish호출되었습니다.

  • pqreset재설정

    void pqreset (pgconn *conn)

    이 기능은 백엔드와의 토토을 닫고

  • pqresetstart pqresetpoll통신 포트를 재설정합니다

    int pqresetstart (pgconn *conn);
    PostGrespollingStatUstype PQRESETPOLL (PGCONN *CONN);

    이 함수는 백엔드에 대한 토토을 닫습니다pqreset(위) 비 블로킹 방식으로 작용한다는 점에서. 이것들PQConnectStartandPQConnectPoll.

    Callpqresetstart. 만약pqresetpollPQConnectPoll.

libpq응용 프로그램 프로그래머는를 유지해야합니다pgconn추상화. 액세서를 사용하십시오pgconn. 필드를 직접 참조하지 마십시오pgconn구조PostgreSQL릴리스 6.4, 정의pgconn|libpq-fe.h. 오래된 코드가 있다면pgconn직접 필드, 당신libpq-int.h도 고치는 것이 좋습니다

  • PQDB데이터베이스를 반환합니다

    char *pqdb (const pgconn *conn)

    PQDB그리고 다음 몇 가지pgconn개체.

  • 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디버그 반환tty토토의.

    char *pqtty (const pgconn *conn)
  • pqoptions반환

    char *pqoptions (const pgconn *conn)
  • PQSTATUS상태를 반환합니다

    Connstatustype pqstatus (const pgconn *conn)

    상태는 여러 값 중 하나 일 수 있습니다. 그러나만Connection_ok또는Connection_Bad. 좋은 토토Connection_ok. 토토 시도가 실패합니다Connection_Bad.pqfinish그러나 통신 실패Connection_Bad조기. 이 경우pqreset.

    입력 참조PQConnectStartandPQConnectPoll다른 상태와 관련하여

  • PQERRORMESSAGE 오류 메시지를 가장 많이 반환합니다

    char * pqerrormessage (const pgconn * conn);

    거의 모든libpq함수가 설정됩니다PQERRORMESSAGE실패하면.libpq컨벤션, aPQERRORMESSAGE의지

  • pqbackendpid반환합니다id백엔드

    int pqbackendpid (const pgconn *conn);

    백엔드PIDISPID알림 백엔드). 주목하십시오PIDa

  • pqgetssl 사용 된 SSL 구조를 반환합니다

    ssl *pqgetssl (const pgconn *conn);

    이 구조는 암호화 레벨을 확인하는 데 사용될 수 있습니다.

    정의해야합니다use_ssl순서대로SSL.HFromOpenSSL.