다음 루틴은 A와 연결을 다루는 것을 다룹니다PostgreSQL백엔드 서버. 그만큼pgconn에서 얻은 객체PQCONNECTDB
또는pqsetdblogin
. 이러한 기능은 그럴 것입니다pgconn개체. 그만큼PQSTATUS
함수를 확인하도록 요청해야합니다
PQCONNECTDB
새로운 것을 만듭니다
pgconn *pqconnectdb (const char *conninfo)
이 루틴은 그것을 사용하여 새로운 데이터베이스 토토을 엽니 다Conninfo. 같지 않은pqsetdblogin
아래에서 매개 변수 세트가 할 수 있습니다PQConnectStart
andPQConnectPoll
응용 프로그램에 선호됩니다
각 매개 변수 설정은 양식에 있습니다keyword = value. (빈 값 또는 a를 작성하려면keyword = 'value'. 하나의\ '또는\\.) 동일한 부호 주변의 공간은입니다
연결할 호스트 이름. 이것이 시작되면 a/tmp.
연결할 호스트의 IP 주소. 이것은 들어와야합니다inet_aton
et
사용hostaddr대신hostaddr, 호스트 이름 조회가 강요됩니다.hostaddr지정되어 있습니다hostaddr원격 주소를 제공합니다. 만약에hostaddrhostaddr원격 주소를 제공합니다. 그만큼libpqishostaddr.
호스트 이름 또는 호스트 주소가 없으면libpq토토됩니다
서버 호스트에서 연결할 포트 번호 또는
데이터베이스 이름.
사용자 이름으로 연결합니다.
서버가 암호를 요구하는 경우 사용할 비밀번호
서버로 전송할 추적/디버그 옵션.
파일 또는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
.
아니PQConnectStart
NORPQConnectPoll
thehostaddrand호스트매개 변수는 적절하게 사용됩니다PQCONNECTDB
위
전화하면pqtrace
,
당신은 소켓이PQConnectPoll
, 아래 설명 된대로.
시작하려면 전화conn = pqConnectStart ( "Connection_info_string"). 만약에conn
libpq새로운 것을 할당 할 수 없었습니다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 월
토토이 이루어지기를 기다리고 있습니다.
토토 확인; 보내기를 기다리고 있습니다.
서버에서 응답을 기다리고 있습니다.
인증을 받았습니다. 토토을 기다리고 있습니다
협상 환경 (토토의 일부
이 상수는 여전히 남아있을 것입니다
스위치 (pqstatus (conn))
ifPQConnectStart
널 비 널 포인터를 반환하면 전화해야합니다pqfinish
당신이 그것을 끝내면, inPQConnectStart
또는PQConnectPoll
실패.
PQConnectPoll
현재libpq편집되었습니다use_ssl정의. 이것
이 기능은 소켓을 비 블로킹 상태로 남겨 둡니다.pqsetnonBlocking
pqconndefaults
반환
pqconninfooption *pqconndefaults (void)
연결 옵션 배열을 반환합니다. 이것은 익숙 할 수 있습니다PQCONNECTDB
옵션 및 현재pqconninfooptionstructsval필드)
옵션 배열을 처리 한 후 전달하여 자유롭게 해방PQCONNINFOFREE
. 이것이 있다면pqconndefaults
.
inPostgreSQL버전pqconndefaults
pqfinish
pgconn개체.
void pqfinish (pgconn *conn)
백엔드 토토 시도가 실패하더라도PQSTATUS
), Thepqfinish
pgconn개체. 그만큼pgconn포인터를 사용해서는 안됩니다pqfinish
호출되었습니다.
pqreset
재설정
void pqreset (pgconn *conn)
이 기능은 백엔드와의 토토을 닫고
pqresetstart
pqresetpoll
통신 포트를 재설정합니다
int pqresetstart (pgconn *conn);
PostGrespollingStatUstype PQRESETPOLL (PGCONN *CONN);
이 함수는 백엔드에 대한 토토을 닫습니다pqreset
(위) 비 블로킹 방식으로 작용한다는 점에서. 이것들PQConnectStart
andPQConnectPoll
.
Callpqresetstart
. 만약pqresetpoll
PQConnectPoll
.
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
.
입력 참조PQConnectStart
andPQConnectPoll
다른 상태와 관련하여
PQERRORMESSAGE
오류 메시지를 가장 많이 반환합니다
char * pqerrormessage (const pgconn * conn);
거의 모든libpq함수가 설정됩니다PQERRORMESSAGE
실패하면.libpq컨벤션, aPQERRORMESSAGE
의지
pqbackendpid
반환합니다id백엔드
int pqbackendpid (const pgconn *conn);
백엔드PIDISPID알림 백엔드). 주목하십시오PIDa
ssl *pqgetssl (const pgconn *conn);
이 구조는 암호화 레벨을 확인하는 데 사용될 수 있습니다.
정의해야합니다use_ssl순서대로SSL.HFromOpenSSL.