범퍼카 토토C 응용 프로그램입니다. 프로그래머 인터페이스포스트그레. 범퍼카 토토은 클라이언트 프로그램이 쿼리를 전달할 수 있도록 하는 라이브러리 루틴 세트 에포스트그레스백엔드 서버 및 이러한 쿼리의 결과를 수신합니다.범퍼카 토토또한 여러 엔진의 기본 엔진입니다. 기타포스트그레스응용 프로그램 다음을 포함한 인터페이스범퍼카 토토++(C++),libpgtcl(Tcl),perl5및ecpg. 그래서 일부 범퍼카 토토의 동작 측면은 당신이 하나를 사용한다면 당신에게 중요할 것입니다 그 패키지 중. 3개의 짧은 프로그램이 마지막에 포함되어 있습니다. 이 섹션에서는 다음을 사용하는 프로그램을 작성하는 방법을 보여줍니다.범퍼카 토토. 다음과 같은 몇 가지 완전한 예가 있습니다.범퍼카 토토다음 응용프로그램 디렉토리:
../src/테스트/회귀
../src/test/examples
../src/bin/psql
다음을 사용하는 프런트엔드 프로그램범퍼카 토토반드시 헤더 파일을 포함합니다범퍼카 토토-fe.h그리고 다음과 연결되어야 합니다.범퍼카 토토도서관.
다음 루틴은 다음에 대한 연결을 처리합니다.포스트그레스백엔드 서버. 는 응용프로그램은 여러 백엔드 연결을 열어둘 수 있습니다. 한 번. (그렇게 하는 한 가지 이유는 둘 이상의 데이터베이스.) 각 연결은 PGconn 개체로 표시됩니다. PQconnectdb() 또는 PQsetdbLogin()에서 얻습니다. 참고하세요 함수는 항상 null이 아닌 객체 포인터를 반환합니다. PGconn을 할당하기에도 메모리가 너무 부족할 수 있습니다. 개체. PQstatus 함수를 호출하여 다음 사항을 확인해야 합니다. 쿼리가 다음을 통해 전송되기 전에 연결이 성공적으로 이루어졌습니다. 연결 개체입니다.
PQsetdb로그인새로운 것을 만듭니다 백엔드에 연결합니다.
PGconn *PQsetdbLogin(const char *pghost,
const char *pgport,
const char *pgoptions,
const char *pgtty,
const char *db이름,
const char *로그인,
const char *pwd)인수가 NULL이면 해당 환경은
변수("환경 변수" 섹션 참조)가 확인됩니다. 만약
환경 변수도 설정되지 않은 경우 하드와이어된 기본값은 다음과 같습니다.
사용. 반환 값은 추상 구조체에 대한 포인터입니다.
백엔드에 대한 연결을 나타냅니다.PQsetdb다음에 새로운 연결을 만듭니다 백엔드.
PGconn *PQsetdb(char *pghost,
char *pgport,
char *pgoptions,
문자 *pgtty,
문자 *db이름)이것은 널 포인터로 PQsetdbLogin()을 호출하는 매크로입니다
login 및 pwd 매개변수의 경우. 주로 다음을 위해 제공됩니다.
이전 프로그램과의 하위 호환성.PQconnectdb새 연결을 만듭니다 백엔드로.
PGconn *PQconnectdb(const char *conninfo)이 루틴은 매개변수를 사용하여 새 데이터베이스 연결을 엽니다 문자열에서 가져옵니다. PQsetdbLogin()과 달리 매개변수 세트는 함수 서명을 변경하지 않고 확장할 수 있으므로 이것을 사용하십시오. 루틴은 새로운 애플리케이션 프로그래밍에 권장됩니다. 합격 문자열은 모든 기본 매개변수를 사용하기 위해 비어 있을 수 있습니다. 공백으로 구분된 하나 이상의 매개변수 설정을 포함합니다. 각 매개변수 설정은 키워드 = 값 형식입니다. (글을 쓰려면 null 값 또는 공백이 포함된 값은 단일 문자로 묶습니다. 따옴표(예: 키워드 = '값'). 값 내의 작은따옴표 \'로 써야 합니다. 등호 주위의 공백은 선택 사항입니다.) 현재 인식되는 매개변수 키워드는 다음과 같습니다.
호스트-- 연결할 호스트입니다. 길이가 0이 아닌 문자열을 지정하면 TCP/IP 통신이 사용됩니다. 호스트 이름이 없으면 범퍼카 토토는 로컬 Unix 도메인 소켓을 사용하여 연결합니다.
포트-- 포트 번호 서버 호스트 또는 소켓 파일 이름 확장자에 연결 Unix 도메인 연결의 경우.
DB이름-- 데이터베이스 이름.
사용자-- 다음에 대한 사용자 이름 인증.
비밀번호-- 사용된 비밀번호 백엔드에서 비밀번호 인증을 요구하는 경우.
인증 유형-- 승인 유형. (이제 백엔드가 다음 방법을 선택하므로 더 이상 사용되지 않습니다. 사용자를 인증합니다. 범퍼카 토토는 여전히 이것을 받아들이고 무시합니다. 이전 버전과의 호환성을 위한 키워드입니다.)
옵션-- 추적/디버그 백엔드로 보내는 옵션입니다.
티-- 파일 또는 tty 백엔드의 선택적 디버그 출력입니다.
PQconndefaults기본값을 반환합니다. 연결 옵션.
PQconninfoOption *PQconndefaults(void)
구조체 PQconninfoOption
char *키워드; /* 옵션의 키워드 */
char *envvar; /* 대체 환경 변수 이름 */
char *컴파일됨; /* 기본값으로 컴파일된 폴백 */
char *발; /* 옵션의 값 */
char *레이블; /* 연결 대화 상자의 필드 레이블 */
char *dispchar; /* 이 필드에 표시할 문자
연결 대화 상자에서. 값은 다음과 같습니다.
"" 입력된 값을 그대로 표시
"*" 비밀번호 필드 - 값 숨기기
"D" 디버그 옵션 - 하지 않음
기본적으로 필드 생성 */
int dispsize; /* 대화상자의 필드 크기(문자) */
;연결 옵션 구조의 주소를 반환합니다. 이
가능한 모든 PQconnectdb 옵션과 그 옵션을 결정하는 데 사용될 수 있습니다.
현재 기본값. 반환 값은 다음 배열을 가리킵니다.
NULL이 있는 항목으로 끝나는 PQconninfoOption 구조체
키워드 포인터. 기본값("val" 필드)은
환경 변수 및 기타 컨텍스트에 따라 달라집니다. 발신자는 반드시
연결 옵션 데이터를 읽기 전용으로 처리합니다.PQfinish연결을 종료합니다 백엔드. 또한 PGconn 개체에서 사용하는 메모리를 해제합니다.
void PQfinish(PGconn *conn)백엔드 연결 시도가 실패하더라도(예: PQstatus로 표시됨) 애플리케이션은 PQfinish를 호출하여 PGconn 객체가 사용하는 메모리를 해제합니다. PGconn 포인터 PQfinish가 호출된 후에는 사용하면 안 됩니다.
PQreset통신 재설정 백엔드와 함께 포트합니다.
void PQreset(PGconn *conn)이 함수는 백엔드에 대한 연결을 닫고 동일한 포스트마스터에 대한 새 연결을 다시 설정하려고 시도합니다. 이전에 사용된 것과 동일한 매개변수를 모두 사용합니다. 이것은 유용할 수 있습니다 작동 중인 연결이 끊어진 경우 오류 복구를 위해.
범퍼카 토토응용프로그램 프로그래머는 다음을 수행해야 합니다. PGconn 추상화를 유지하도록 주의하십시오. 접근자 사용 아래 함수를 사용하여 PGconn의 내용을 가져옵니다. 직접적으로 피하세요 PGconn 구조의 필드를 참조하는 이유는 다음과 같습니다. 향후 변경될 수 있습니다. (시작부터)포스트그레릴리스 6.4, 구조체 정의 PGconn은 범퍼카 토토-fe.h에서도 제공되지 않습니다. 오래된 코드가 있는 경우 PGconn 필드에 직접 액세스하는 경우 다음과 같이 계속 사용할 수 있습니다. 범퍼카 토토-int.h도 포함되어 있지만 코드를 수정하는 것이 좋습니다. 곧.)
PQdb다음의 데이터베이스 이름을 반환합니다. 연결.
char *PQdb(PGconn *conn)PQdb 및 다음 여러 함수는 값을 반환합니다. 연결 시 설정됩니다. 이 값은 수명 동안 고정됩니다. PGconn 개체입니다.
PQuser다음의 사용자 이름을 반환합니다. 연결.
char *PQuser(PGconn *conn)
PQ패스다음의 비밀번호를 반환합니다. 연결.
char *PQpass(PGconn *conn)
PQ호스트서버 호스트를 반환합니다. 연결 이름입니다.
char *PQhost(PGconn *conn)
PQ포트포트를 반환합니다. 연결.
char *PQport(PGconn *conn)
PQtty디버그 tty를 반환합니다. 연결.
char *PQtty(PGconn *conn)
PQ옵션백엔드를 반환합니다. 연결에 사용되는 옵션입니다.
char *PQoptions(PGconn *conn)
PQ상태상태를 반환합니다. 연결. 상태는 CONNECTION_OK 또는 연결_불량.
ConnStatusType PQstatus(PGconn *conn)
실패한 연결 시도는 상태로 표시됩니다. 연결_잘못. 일반적으로 OK 상태는 다음까지 유지됩니다. PQfinish이지만 통신 실패로 인해 상태가 조기에 CONNECTION_BAD로 변경되었습니다. 그 경우에는 애플리케이션은 PQreset을 호출하여 복구를 시도할 수 있습니다.
PQerrorMessage오류를 반환합니다. 가장 최근에 작업에 의해 생성된 메시지 연결.
char *PQerrorMessage(PGconn* conn);
거의 모든 범퍼카 토토 함수는 다음과 같은 경우 PQerrorMessage를 설정합니다. 실패하다. 범퍼카 토토 규칙에 따라 비어 있지 않은 PQerrorMessage 후행 줄바꿈이 포함됩니다.
PQbackendPID프로세스를 반환합니다. 이 연결을 처리하는 백엔드 서버의 ID입니다.
int PQbackendPID(PGconn *conn);백엔드 PID는 디버깅 목적과 NOTIFY 메시지와의 비교(PID 포함) 백엔드에 알림). PID는 프로세스에 속합니다. 로컬 호스트가 아닌 데이터베이스 서버 호스트에서 실행 중입니다!