이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다토토 사이트 추천 : 문서 : 17 : 32 장. LIBPQ - C 라이브러리버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

27 장libpq-C 라이브러리

libpqC응용 프로그램 프로그래머의 인터페이스PostgreSQL. libpq는 일련의 라이브러리 기능입니다PostgreSQL백엔드 서버 및 수신libpq다른 여러 다른 사람들의 기본 엔진이기도합니다PostgreSQL응용 프로그램 인터페이스,libpq ++(C ++),libpgtcl(tcl),PerlECPG. 그래서의 일부 측면libpq의 행동이 중요합니다

이 장의 끝에 일부 짧은 프로그램이 포함되어 있습니다.섹션 27.14) 방법을 보여줍니다libpq.libpq디렉토리의 응용 프로그램src/test/examples소스 코드에서

사용하는 클라이언트 프로그램libpq헤더 파일을 포함해야합니다libpq-fe.hlibpq도서관.

27.1. 데이터베이스 연결 제어

다음 기능은 a를 연결하는 것을 다룹니다.PostgreSQL백엔드 서버. anpgconn함수에서 얻은 객체PQCONNECTDB또는pqsetdblogin. 이러한 기능은 그럴 것입니다pgconn개체. 그만큼PQSTATUS함수를 선택하여 확인해야합니다

PQCONNECTDB

데이터베이스 서버에 새로운 연결을합니다.

pgconn *pqconnectdb (const char *conninfo);

이 기능은 새로운 데이터베이스 연결을 사용하여 엽니 다Conninfo. 같지 않은pqsetdblogin아래, 매개 변수 세트PQConnectStartPQConnectPoll)가 선호됩니다

전달 된 문자열은 모든 기본값을 사용하기 위해 비어있을 수 있습니다.키워드 = value.keyword = 'value'. 단일 따옴표 및\ '\\.) 평등 주위의 공간

현재 인식 된 매개 변수 키 단어는 다음과 같습니다.

host

와이즈 토토할 호스트 이름.이것이 슬래시로 시작하면/tmp.

hostaddr

와이즈 토토할 호스트의 숫자 IP 주소. 이것172.28.40.9. 당신의 경우

사용hostaddr대신host허용hosthostaddr, 호스트 이름hostaddrhost,hostaddr원격 주소를 제공합니다. Kerberos가 사용될 때, ahosthostaddrhostaddr원격 주소를 제공합니다.hostislibpqahostaddr.) 또한host보다는hostaddr익숙합니다$ home/.pgpass.

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

포트

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

dbname

데이터베이스 이름. 기본값은 동일합니다

사용자

PostgreSQL사용자

비밀번호

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

Connect_Timeout

최대 와이즈 토토 대기, 초

옵션

명령 줄 옵션으로 전송됩니다

tty

무시했습니다 (이전에는 보내야 할 위치가 지정되었습니다

sslmode

이 옵션은 무엇인지 또는 무엇을 결정합니다SSL와이즈 토토은 서버와 협상됩니다.비활성화만 시도 할 것입니다SSL와이즈 토토;허용의지SSL와이즈 토토, 그렇다면SSL와이즈 토토;선호(기본값)는 협상됩니다.SSL와이즈 토토, 그렇다면SSL와이즈 토토;요구만 시도 할 것입니다SSL와이즈 토토.

ifPostgreSQL옵션을 사용하여 SSL 지원없이 컴파일됩니다요구허용선호libpqSSL와이즈 토토.

요구 사항

이 옵션은에 찬성하여 더 이상 사용되지 않습니다.sslmode설정.

1으로 설정된 경우, anSSL서버에 대한 와이즈 토토입니다sslmode 요구). libpq그런 다음 거부합니다SSL와이즈 토토.libpq협상 할 것입니다sslmode 선호). 이 옵션은 전용입니다PostgreSQL

서비스

추가 매개 변수에 사용할 서비스 이름.서비스접두사/Share/pg_service.conf.sample파일 설정 방법에 대한 정보.

매개 변수가 지정되지 않은 경우섹션 27.10)가 확인됩니다. 만약

pqsetdblogin

데이터베이스 서버에 새로운 연결을합니다.

pgconn *pqsetdblogin (const char *pghost,

이것은의 전임자입니다.PQCONNECTDB고정 된 세트가 있습니다NULL또는 빈 문자열

pqsetdb

데이터베이스 서버에 새로운 연결을합니다.

pgconn *pqsetdb (char *pghost,

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

PQConnectStart
PQConnectPoll

a

PGCONN *PQCONNECTSTART (const char *conninfo);
PostGrespollingStatUstype PQConnectPoll (PgConn *Conn);

이 두 기능은PQCONNECTDB따라서 응용 프로그램이 가능합니다

데이터베이스 연결은 매개 변수를 사용하여 이루어집니다Conninfo,PQConnectStart.PQCONNECTDB.

아니PQConnectStartNORPQConnectPoll의지

  • thehostaddrhost매개 변수가 사용됩니다PQCONNECTDB위의 자세한 내용은

  • 전화하면pqtrace,

  • 소켓이 적절한 지 확인하십시오PQConnectPoll21774_21809

블로킹되지 않은 와이즈 토토 요청을 시작하려면 전화conn = pqConnectStart ( "Connection_info_string"). 만약에connlibpq할당 할 수 없었습니다pgconn구조.pgconn포인터가 반환되었습니다 (아직 유효성을 나타내지는 않지만PQConnectStart, Call상태 = pqstatus (conn). 만약에상태equalsConnection_Bad, PQConnectStart실패했습니다.

ifPQConnectStart성공, 다음 단계는 투표하는 것입니다libpq진행할 수 있습니다pqsocket (conn)설명자를 얻으려면pqconnectpoll (conn)마지막 반품pgres_polling_reading, 기다릴 때까지 기다리십시오select (), poll ()또는 유사한 시스템 기능).pqconnectpoll (conn)다시. 거꾸로,pqconnectpoll (conn)마지막pgres_polling_writing,pqconnectpoll (conn)다시.PQConnectPoll, 즉, 바로 다음PQConnectStart,pgres_polling_writing. 이 루프를 계속하십시오pqconnectpoll (conn)반환pgres_polling_failed,pgres_polling_ok,

와이즈 토토하는 동안 언제든지PQSTATUS. 이것이주는 경우Connection_Bad, 그런 다음 연결Connection_okPQConnectPoll, 위에서 설명합니다. 다른

Connection_started

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

Connection_Made

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

Connection_awaiting_Response

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

Connection_auth_ok

인증을 받았습니다. 백엔드를 기다리고 있습니다

Connection_SSL_STARTUP

SSL 암호화 협상.

Connection_Setenv

환경 중심 매개 변수 협상

이 상수는 여전히 남아 있지만 (in

스위치 (pqstatus (conn))

theConnect_Timeout사용 할 때 연결 매개 변수가 무시됩니다PQConnectPoll; 응용 프로그램입니다PQConnectStart뒤 따르는PQConnectPoll루프입니다PQCONNECTDB.

ifPQConnectStart널을 반환합니다pqfinish당신이 그것을 끝내면,

pqconndefaults

기본 연결 옵션을 반환합니다.

pqconninfooption *pqconndefaults (void);

연결 옵션 배열을 반환합니다. 이것은 사용될 수 있습니다PQCONNECTDB옵션 및 현재pqconninfooption구조,키워드포인터. 현재입니다val필드)

옵션 배열을 처리 한 후 전달하여 자유롭게 해방하십시오PQCONNINFOFREE. 만약에pqconndefaults.

pqfinish

서버에 대한 와이즈 토토을 닫습니다. 또한 메모리를 해방시킵니다pgconn개체.

void pqfinish (pgconn *conn);

서버 와이즈 토토 시도가 실패하더라도 주목하십시오PQSTATUS),pqfinishpgconn개체. 그만큼pgconn포인터를 다시 사용해서는 안됩니다pqfinish

pqreset

통신 채널을 서버로 재설정합니다.

void pqreset (pgconn *conn);

이 함수는 서버에 대한 와이즈 토토을 닫습니다

PQRESETSTART
pqresetpoll

통신 채널을 서버로 재설정하십시오

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

이 함수는 와이즈 토토을 닫습니다pqreset(위) aPQConnectStartPQConnectPoll.

와이즈 토토 재설정을 시작하려면 CallPQRESETSTART. 0을 반환하면pqresetpoll정확히PQConnectPoll.