이 문서는 지원되지 않는 버전의 PostgreSQL 용입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다현재버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

46 장. 범퍼카 토토

범퍼카 토토C 응용 프로그램입니다 프로그래머의 인터페이스Postgres. 범퍼카 토토is 클라이언트 프로그램이 쿼리를 전달할 수있는 라이브러리 루틴 세트Postgres백엔드 서버 및 이 쿼리의 결과를 받으려면범퍼카 토토는 또한 여러 가지의 기본 엔진입니다 다른Postgres응용 프로그램 를 포함한 인터페이스범퍼카 토토 ++(C ++),libpgtcl(tcl),perl5ECPG. 그래서 일부 범퍼카 토토의 행동의 측면은 당신이 하나를 사용하면 당신에게 중요합니다. 그 패키지의. 끝에 세 가지 짧은 프로그램이 포함되어 있습니다 이 섹션에서 사용하는 프로그램을 작성하는 방법을 보여주는이 섹션범퍼카 토토. 의 몇 가지 완전한 예가 있습니다.범퍼카 토토다음의 응용 프로그램 디렉토리 :

../ src/test/regress
    ../src/test/examples
    ../src/bin/psql

사용하는 프론트 엔드 프로그램범퍼카 토토헤더 파일 포함범퍼카 토토-fe.h및 와 연결해야합니다.범퍼카 토토도서관.

데이터베이스 연결 기능

다음 루틴은 A와 연결을 처리합니다.Postgres백엔드 서버. 그만큼 애플리케이션 프로그램은 여러 백엔드 연결을 열 수 있습니다 일회. (그렇게해야 할 이유 중 하나는 둘 이상의 액세스입니다. 데이터베이스.) 각 연결은 pgconn 객체로 표시됩니다. pqconnectdb () 또는 pqsetdblogin ()로부터 얻어진다. 이것들에 유의하십시오 함수는 항상 널이 아닌 객체 포인터를 반환합니다 아마도 pgconn을 할당하기에는 기억이 너무 적을 것입니다. 물체. pqstatus 함수는 쿼리가 연결 객체.

  • pqsetdblogin새로운 것을 만듭니다 백엔드 연결.

    pgconn *pqsetdblogin (const char *pghost,
                    const char *pgport,
                    const char *pgoptions,
                    const char *pgtty,
                    const char *dbname,
                    const char *로그인,
                    const char *pwd)
    인수가 무효 인 경우 해당 환경이 있습니다 변수 ( "환경 변수"섹션 참조)가 확인됩니다. 만약 환경 변수도 설정되지 않으며 하드 유선 기본값은 사용된. 반환 값은 추상 구조물에 대한 포인터입니다. 백엔드와의 연결을 나타내는 것.
  • pqsetdb새로운 연결을합니다 백엔드.

    pgconn *pqsetdb (char *pghost,
                    char *pgport,
                    char *pgoptions,
                    char *pgtty,
                    char *dbname)
    이것은 널 포인터와 함께 pqsetdblogin ()을 호출하는 매크로입니다. 로그인 및 PWD 매개 변수의 경우. 주로 제공됩니다 오래된 프로그램과의 후진 호환성.
  • PQCONNECTDB새로운 연결을 만듭니다 백엔드에.

    pgconn *pqconnectdb (const char *conninfo)
    이 루틴은 매개 변수를 사용하여 새로운 데이터베이스 연결을 엽니 다 문자열에서 가져 왔습니다. pqsetdblogin ()과 달리 매개 변수 세트는 할 수 있습니다 기능 서명을 변경하지 않고 확장되므로 이것을 사용하십시오. 새로운 애플리케이션 프로그래밍을 위해 루틴이 권장됩니다. 통과 모든 기본 매개 변수를 사용하기 위해 문자열이 비어 있거나 공백으로 분리 된 하나 이상의 매개 변수 설정을 포함합니다. 각 매개 변수 설정은 Keyword = value 양식입니다. (쓰기 위해 널 값 또는 공백이 포함 된 값, 단일로 둘러싸여 인용문, 예를 들어, 키워드 = '값'. 값 내의 단일 따옴표 \ '로 작성해야합니다. 동일한 부호 주위의 공간은 선택 사항입니다.) 현재 인식 된 매개 변수 키워드는 다음과 같습니다.
    • host- 호스트 연결. 0이 아닌 길이의 문자열이 지정된 경우 TCP/IP 커뮤니케이션이 사용됩니다. 호스트 이름이 없으면 범퍼카 토토 로컬 UNIX 도메인 소켓을 사용하여 연결하십시오.

    • 포트- 포트 번호로 서버 호스트 또는 소켓 파일 이름 확장에 연결 유닉스 도메인 연결 용.

    • dbname- 데이터베이스 이름.

    • user- 사용자 이름 입증.

    • 비밀번호- 비밀번호 사용 백엔드가 암호 인증을 요구하는 경우

    • authtype- 승인 유형. (백엔드가 이제 방법을 선택하기 때문에 더 이상 사용하지 않습니다. 사용자를 인증하십시오. 범퍼카 토토는 여전히 이것을 받아들이고 무시합니다 후진 호환성을위한 키워드.)

    • 옵션- 트레이스/디버그 백엔드로 보낼 옵션.

    • tty- 파일 또는 tty for 백엔드의 선택적 디버그 출력.

    PQSETDBLOGIN과 마찬가지로 PQCONNECTDB는 환경 변수를 사용합니다 또는 지정되지 않은 옵션의 기본값 내장 값.
  • pqconndefaults기본값을 반환합니다 연결 옵션.

    pqconninfooption *pqconndefaults (void)
    
    구조 pqconninfooption
    
                    char *키워드;   / * 옵션 키워드 */
                    char *envvar;    / * 폴백 환경 변수 이름 */
                    char *편집;  / * 기본값으로 컴파일 된 폴백 */
                    char *val;       / * 옵션의 가치 */
                    숯 *레이블;     / * 연결 대화 상자에서 필드에 대한 레이블 */
                    char *dispchar;  /*이 필드에 표시 할 문자
                                          연결 대화 상자에서. 값은 다음과 같습니다.
                                          ""디스플레이가 그대로 입력되었습니다
                                          "*"비밀번호 필드 - 값 숨기기
                                          "D"디버그 옵션 -하지 마십시오
                                          기본적으로 필드 생성 */
                    int dispsize;  / * 대화 상자의 문자의 필드 크기 */
            ;
    연결 옵션 구조의 주소를 반환합니다. 이것 가능한 모든 PQConnectDB 옵션 및 그를 결정하는 데 사용될 수 있습니다. 현재 기본값 값. 리턴 값은 배열을 가리 킵니다 pqconninfooption structs, null이있는 항목으로 끝납니다. 키워드 포인터. 기본값 ( "val"필드)은 그렇습니다 환경 변수 및 기타 컨텍스트에 따라 다릅니다. 발신자는해야합니다 연결 옵션 데이터를 읽기 전용으로 처리하십시오.
  • pqfinish연결을 닫습니다 백엔드. 또한 pgconn 객체에서 사용하는 메모리를 해방합니다.

    void pqfinish (pgconn *conn)
    백엔드 연결 시도가 실패하더라도 PQSTATUS로 표시), 응용 프로그램은 pqfinish로 호출해야합니다 pgconn 객체에서 사용하는 메모리를 자유롭게하십시오. PGCONN 포인터 pqfinish라고 불린 후에 사용해서는 안됩니다.
  • pqreset통신을 재설정하십시오 백엔드가있는 포트.

    void pqreset (pgconn *conn)
    이 함수는 백엔드에 대한 연결을 닫고 동일한 우체국 장에 대한 새로운 연결을 재건하려고 시도하고 이전에 사용 된 동일한 매개 변수를 모두 사용합니다. 이것은 유용 할 수 있습니다 작업 연결이 손실되면 오류 복구.

범퍼카 토토응용 프로그램 프로그래머 PGConn 추상화를 유지하도록주의하십시오. 액세서를 사용하십시오 PGConn의 내용을 얻기위한 아래의 기능. 직접 피하십시오 PGConn 구조의 필드를 참조하는 것은 미래의 변화에 따라야합니다. (시작Postgres릴리스 6.4, 구조물의 정의 PGConn은 범퍼카 토토-fe.h에도 제공되지 않습니다. 오래된 코드가있는 경우 pgconn 필드에 직접 액세스하면 계속 사용할 수 있습니다. 범퍼카 토토-int.h도 포함하지만 코드를 수정하는 것이 좋습니다. 곧.)

  • PQDB데이터베이스 이름을 반환합니다 연결.

    char *pqdb (pgconn *conn)
    PQDB 및 다음 몇 가지 함수는 값을 반환합니다 연결시 설정. 이 값은 수명을 위해 고정되어 있습니다 pgconn 객체.
  • PQUSER사용자 이름을 반환합니다 연결.

    char *pquser (pgconn *conn)
  • pqpass비밀번호를 반환합니다 연결.

    char *pqpass (pgconn *conn)
  • pqhost서버 호스트를 반환합니다 연결 이름.

    char *pqhost (pgconn *conn)
  • pqport포트를 반환합니다 연결.

    char *pqport (pgconn *conn)
  • pqtty디버그 tty를 반환합니다 연결.

    char *pqtty (pgconn *conn)
  • pqoptions백엔드를 반환합니다 연결에 사용 된 옵션.

    char *pqoptions (pgconn *conn)
  • pqstatus연결. 상태는 Connection_ok 또는입니다 Connection_bad.

    Connstatustype pqstatus (pgconn *conn)

    실패한 연결 시도는 상태에 따라 신호를받습니다 Connection_bad. 일반적으로 OK 상태는 그대로 유지됩니다 pqfinish이지만 통신 실패로 인해 발생할 수 있습니다 Connection_bad로 변경된 상태 조기. 이 경우 PQRESET에 전화하여 응용 프로그램이 복구 할 수 있습니다.

  • PQERRORMESSAGE오류를 반환합니다 가장 최근에 작전에서 생성 된 메시지 연결.

    char * pqerrormessage (pgconn * conn);

    거의 모든 범퍼카 토토 함수는 pqerrormessage를 설정합니다 실패하다. LIBPQ 협약에 의해 비어있는 pqerrormessage 후행 뉴 라인을 포함합니다.

  • pqbackendpid프로세스를 반환합니다 이 연결을 처리하는 백엔드 서버의 ID.

    int pqbackendpid (pgconn *conn);
    백엔드 PID는 디버깅 목적으로 유용합니다. 알림 메시지 (PID 포함) 백엔드 알림). PID는 프로세스에 속합니다 로컬 호스트가 아닌 데이터베이스 서버 호스트 실행!