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

27 장libpq-C 라이브러리

libpqC응용 프로그램 프로그래머의 인터페이스PostgreSQL. libpq는 일련의 라이브러리 기능입니다PostgreSQL백엔드 서버 및 수신

libpq도 기본입니다PostgreSQL응용 프로그램 인터페이스를 포함합니다ECPG. 그래서의 일부 측면libpq의 행동이 중요합니다섹션 27.11, 섹션 27.12and섹션 27.13행동을 설명하십시오libpq.

이 장의 끝에 일부 짧은 프로그램이 포함되어 있습니다.섹션 27.16) 방법을 보여줍니다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아래, 매개 변수 세트PQConnectStartandPQConnectPoll)가 선호됩니다

전달 된 문자열은 모든 기본값을 사용하기 위해 비어있을 수 있습니다.키워드 = value.키워드 =. 내에서 단일 따옴표와 백 슬래시\ 'and\\.

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

host

와이즈 토토할 호스트 이름.이것이 슬래시로 시작하면host지정되지 않은 것은 UNIX- 도메인에 와이즈 토토하도록합니다in/tmp(또는 소켓PostgreSQL건설되었습니다). ~에LocalHost.

hostaddr

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

사용hostaddr대신host허용hosthostaddr, 호스트 이름hostaddrhost,hostaddr원격 주소를 제공합니다. Kerberos가 사용될 때, ahostandhostaddrhostaddr원격 주소를 제공합니다.hostislibpqahostaddr.) 또한host보다는hostaddr익숙합니다~/.pgpass(참조섹션 27.12).

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

포트

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

dbname

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

사용자

PostgreSQL사용자

비밀번호

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

Connect_Timeout

최대 와이즈 토토 대기, 초

옵션

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

tty

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

sslmode

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

ifPostgreSQL옵션을 사용하여 SSL 지원없이 컴파일됩니다요구허용and선호libpq실제로 시도하지 않을 것입니다SSL와이즈 토토.

요구 사항

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

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

서비스

추가 매개 변수에 사용할 서비스 이름.서비스share/pg_service.conf.sample

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

pqsetdblogin

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

pgconn *pqsetdblogin (const char *pghost,

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

PQSETDB

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

pgconn *pqsetdb (char *pghost,

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

PQConnectStart
PQConnectPoll

a

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

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

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

아니PQConnectStartNORPQConnectPoll의지

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

  • 전화하면pqtrace,

  • 소켓이 적절한 지 확인하십시오PQConnectPoll, 설명대로

비 차단 와이즈 토토 요청을 시작하려면 전화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_ok그러면 와이즈 토토이 있습니다PQConnectPoll, 위에서 설명합니다. 다른

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(위) aPQConnectStartandPQConnectPoll.

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