이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : 32.1. 데이터베이스 토토 커뮤니티 제어 기능버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

1.2. 데이터베이스 토토 사이트 기능

다음 루틴은 다음에 대한 연결을 처리합니다.PostgreSQL백엔드 서버. 는 응용프로그램은 여러 백엔드 연결을 열어둘 수 있습니다. 한 번. (그렇게 하는 한 가지 이유는 둘 이상의 데이터베이스.) 각 연결은 다음과 같이 표시됩니다.PGconn다음에서 얻은 객체PQconnectdb또는PQsetdb로그인. 이러한 기능은 아마도 존재하지 않는 한 항상 null이 아닌 객체 포인터를 반환합니다. 할당하기에도 메모리가 너무 적습니다.PGconn개체.PQ상태함수를 호출하여 확인해야 합니다 쿼리가 수행되기 전에 토토 사이트이 성공적으로 이루어졌는지 여부 토토 사이트 개체를 통해 전송됩니다.

  • PQconnectdb새로운 것을 만듭니다 데이터베이스 서버에 토토 사이트합니다.

    PGconn *PQconnectdb(const char *conninfo)

    이 루틴은 다음을 사용하여 새 데이터베이스 연결을 엽니다. 문자열에서 가져온 매개변수콘인포. 달리PQsetdb로그인아래, 매개변수 세트는 함수 서명을 변경하지 않고 확장할 수 있으므로 다음을 사용하십시오. 이 루틴 또는 비차단 유사체 중 하나PQconnectStart그리고PQconnectPoll적용을 선호합니다 프로그래밍. 전달된 문자열은 모두 사용하려면 비어 있을 수 있습니다. 기본 매개변수이거나 하나 이상의 매개변수를 포함할 수 있습니다. 공백으로 구분된 설정입니다.

    각 매개변수 설정은 다음과 같은 형식입니다.키워드 = 값. (빈 값을 쓰거나 공백이 포함된 값은 작은따옴표로 묶습니다. 예를 들어,키워드 = '값'. 싱글 값 내의 따옴표와 백슬래시는 다음으로 이스케이프되어야 합니다. 백슬래시(예:\'또는\\.) 등호 주위의 공백은 다음과 같습니다. 선택 사항. 현재 인식되는 매개변수 키워드 다음은:

    호스트

    연결할 호스트의 이름. 이것이 a로 시작하는 경우 슬래시는 오히려 Unix 도메인 통신을 지정합니다. TCP/IP 통신보다; 값은 이름입니다. 소켓 파일이 저장되는 디렉토리입니다. 는 기본값은 Unix 도메인 소켓에 연결하는 것입니다./tmp.

    hostaddr

    연결할 호스트의 IP 주소입니다. 이 안에 있어야 BSD에서 사용되는 표준 숫자와 점 형식 기능inet_atonet 알. 길이가 0이 아닌 문자열이 지정되면 TCP/IP 통신이 사용됩니다.

    사용 중호스트주소대신 호스트는 애플리케이션이 호스트 이름을 피할 수 있도록 허용합니다. 조회는 다음과 같은 애플리케이션에서 중요할 수 있습니다. 시간 제약. 그러나 Kerberos 인증 호스트 이름이 필요합니다. 그러므로 다음은 적용됩니다. 호스트가 없이 지정된 경우hostaddr, 호스트 이름 조회가 강제됩니다. 만일hostaddr지정됨 호스트가 없으면 값은hostaddr원격 주소를 제공합니다. 만약에 Kerberos가 사용되면 역방향 이름 쿼리가 발생합니다. 만약에 호스트와 모두호스트주소있습니다 지정됨, 값은hostaddr원격 주소를 제공합니다. 는 Kerberos를 사용하지 않는 한 호스트 값은 무시됩니다. 이 값은 Kerberos에 사용됩니다. 인증. 인증이 가능하다는 점 참고하세요 다음과 같은 경우 실패합니다.libpq이다 시스템 이름이 아닌 호스트 이름을 전달했습니다. 에서호스트주소.

    호스트 이름이나 호스트 주소가 없으면,libpq토토 사이트됩니다 로컬 Unix 도메인 소켓을 사용합니다.

    포트

    서버 호스트에 연결할 포트 번호, 또는 Unix 도메인용 소켓 파일 이름 확장자 연결.

    db이름

    데이터베이스 이름입니다.

    사용자

    연결할 사용자 이름.

    비밀번호

    서버가 비밀번호를 요구할 경우 사용할 비밀번호 인증.

    connect_timeout

    토토 사이트 루틴에 주어진 시간 공간(초)입니다. 제로 설정하지 않으면 무한을 의미합니다.

    옵션

    서버로 전송될 추적/디버그 옵션.

    파일 또는용 백엔드의 선택적 디버그 출력입니다.

    requiressl

    요구하려면 1로 설정SSL서버에 토토 사이트됩니다.Libpq그러면 거절하겠습니다 서버가 승인하지 않는 경우 토토 사이트하려면SSL연결. 세트 서버와 협상하려면 0(기본값)으로 설정하세요. 이 옵션은 경우에만 사용 가능PostgreSQLSSL로 컴파일되었습니다. 지원합니다.

    매개변수가 지정되지 않은 경우 해당 환경 변수(참조섹션 1.10)이 확인되었습니다. 환경변수가 설정되지 않은 경우 둘 중 하나를 선택하면 하드와이어된 기본값이 사용됩니다. 반환 값은 다음과 같습니다 초록에 대한 포인터구조체백엔드에 대한 토토 사이트을 나타냅니다.

  • PQsetdb로그인새로운 것을 만듭니다 데이터베이스 서버에 토토 사이트합니다.

    PGconn *PQsetdbLogin(const char *pghost,
                         const char *pgport,
                         const char *pgoptions,
                         const char *pgtty,
                         const char *db이름,
                         const char *로그인,
                         const char *pwd)

    이것은 이전 버전입니다.PQconnectdb고정된 수의 매개변수는 동일하지만 기능은 동일합니다.

  • PQsetdb새로운 것을 만듭니다 데이터베이스 서버에 토토 사이트합니다.

    PGconn *PQsetdb(char *pghost,
                    char *pgport,
                    char *pgoptions,
                    문자 *pgtty,
                    문자 *db이름)

    이것은 호출하는 매크로입니다PQsetdb로그인에 대한 널 포인터 포함로그인그리고비밀번호매개변수. 주로 제공됩니다 이전 프로그램과의 호환성을 위해.

  • PQconnectStart, PQconnectPoll 다음에서 데이터베이스 서버에 연결하십시오. 비차단 방식.

    PGconn *PQconnectStart(const char *conninfo)
    PostgresPollingStatusType PQconnectPoll(PGconn *conn)

    이 두 루틴은 다음에 대한 연결을 여는 데 사용됩니다. 애플리케이션의 스레드가 그렇게 하는 동안 원격 I/O에서는 실행이 차단되지 않습니다.

    데이터베이스 연결은 다음 매개변수를 사용하여 이루어졌습니다. 문자열에서콘인포, 전달됨PQconnectStart. 이 문자열은 위에서 설명한 것과 동일한 형식으로PQconnectdb.

    둘 다 아님PQconnectStart아니요PQconnectPoll다음과 같이 차단됩니다. 여러 가지 제한 사항이 충족되는 한:

    • hostaddr그리고호스트매개변수는 다음을 위해 적절하게 사용됩니다. 이름 및 역이름 쿼리가 수행되지 않도록 하십시오. 다음 매개변수에 대한 문서를 참조하세요.PQconnectdb위에 대한 세부사항.

    • 부르신다면PQtrace, 추적하는 스트림 객체가 차단하지 마세요.

    • 당신은 소켓이 다음 위치에 있는지 스스로 확인합니다. 전화하기 전 적절한 상태PQconnectPoll, 아래 설명과 같습니다.

    시작하려면 전화하세요conn=PQconnectStart("connection_info_string"). 만일NULL이면libpq새로 할당할 수 없습니다.PGconn구조. 그렇지 않으면, 유효한PGconn포인터가 반환되었습니다. (아직 유효한 토토 사이트을 나타내지는 않지만 데이터베이스). 돌아오는 길에PQconnectStart, 전화status=PQ상태(conn). 상태가 다음과 같은 경우CONNECTION_BAD, PQconnectStart실패했습니다.

    만약PQconnectStart성공, 다음 단계는 여론 조사입니다.libpq그래서 다음 작업을 진행할 수 있습니다. 연결 순서. 따라서 루프: 연결을 고려하십시오."비활성"기본적으로. 만일PQconnectPoll마지막 반환PGRES_POLLING_ACTIVE, 고려해 보세요"활성"대신. 만일PQconnectPoll(콘)마지막 반환PGRES_POLLING_READING, 수행하다선택()읽기용PQsocket(콘). 지속된다면 반환됨PGRES_POLLING_WRITING, 수행하다선택()쓰기용 에PQsocket(콘). 만약 당신이 아직 전화 안함PQconnectPoll, 즉 통화 후PQconnectStart, 마지막인 것처럼 행동하세요 반환됨PGRES_POLLING_WRITING. 만약에선택()은 다음을 보여줍니다. 소켓이 준비되었습니다. 고려해 보세요."활성". 이렇게 결정된 경우 토토 사이트은"활성", 전화PQconnectPoll(conn)다시. 만약에 이 호출이 반환됩니다.PGRES_POLLING_FAILED, 연결 절차 실패했습니다. 이 호출이 반환되는 경우PGRES_POLLING_OK, 토토 사이트되었습니다 성공적으로 만들어졌습니다.

    다음의 사용에 유의하세요선택()소켓이 준비되었는지 확인하기 위해 단지 (아마도) 예일 뿐입니다. 그 외 시설을 갖춘 자 사용 가능(예: a설문조사()콜, 물론 그것을 대신 사용할 수도 있습니다.

    토토 사이트 중 언제든지 상태는 전화를 걸어 토토 사이트을 확인할 수 있습니다.PQ상태. 만약 이렇다면CONNECTION_BAD다음 연결 절차 실패했습니다. 만약 그렇다면CONNECTION_OK그러면 연결은 다음과 같습니다. 준비. 이들 상태 중 하나는 동일하게 감지 가능해야 합니다. 반환 값에서PQconnectPoll, 위와 같습니다. 다른 주에서는 비동기 연결 중에(그리고 도중에만) 표시됩니다. 절차. 이는 연결의 현재 단계를 나타냅니다. 절차를 수행하며 사용자에게 피드백을 제공하는 데 유용할 수 있습니다. 예를 들어. 이러한 상태에는 다음이 포함될 수 있습니다.

    CONNECTION_STARTED

    토토 사이트이 이루어지기를 기다리는 중입니다.

    CONNECTION_MADE

    토토 사이트 정상; 보내기를 기다리고 있습니다.

    CONNECTION_AWAITING_RESPONSE

    서버의 응답을 기다리는 중입니다.

    CONNECTION_AUTH_OK

    인증을 받았습니다. 토토 사이트을 기다리는 중 계속하려면 시작하세요.

    CONNECTION_SETENV

    협상 환경(토토 사이트의 일부) 시작).

    이 상수는 그대로 유지되지만(순서대로) 호환성을 유지하기 위해) 애플리케이션은 절대 의존해서는 안 됩니다. 이것들이 특정한 순서로 나타나거나, 전혀, 또는 상태는 항상 문서화된 값 중 하나입니다. 안 애플리케이션은 다음과 같은 작업을 수행할 수 있습니다.

    스위치(PQstatus(conn))
    
        사례 CONNECTION_STARTED:
            Feedback = "연결 중...";
            부서지다;
    
        사례 CONNECTION_MADE:
            Feedback = "서버에 연결되었습니다...";
            부서지다;
    .
    .
    .
        기본값:
            Feedback = "연결 중...";

    만약에 주의하세요PQconnectStartNULL이 아닌 포인터를 반환합니다. 호출해야 합니다.PQfinish작업이 끝나면, 구조 및 관련 메모리를 폐기하려면 블록. 이 작업은 다음을 호출하는 경우에도 수행되어야 합니다.PQconnectStart또는PQconnectPoll실패했습니다.

    PQconnectPoll현재는 다음과 같은 경우 차단libpq컴파일되었습니다 와 함께USE_SSL정의되었습니다. 이 제한사항은 향후 삭제될 수 있습니다.

    이 함수는 다음과 같이 소켓을 비차단 상태로 둡니다. 만일PQsetnonblocking이었어 전화했어요.

  • PQconndefaults다음을 반환합니다. 기본 연결 옵션입니다.

    PQconninfoOption *PQconndefaults(void)
    
    구조체 PQconninfoOption
    
        char *키워드;   /* 옵션의 키워드 */
        char *envvar;    /* 대체 환경 변수 이름 */
        char *컴파일됨;  /* 기본값으로 컴파일된 폴백 */
        char *발;       /* 옵션의 현재 값, 또는 NULL */
        char *레이블;     /* 연결 대화 상자의 필드 레이블 */
        char *dispchar;  /* 이 필드에 표시할 문자
                              연결 대화 상자에서. 값은 다음과 같습니다.
                              "" 입력된 값을 그대로 표시
                              "*" 비밀번호 필드 - 값 숨기기
                              "D" 디버그 옵션 - 기본적으로 표시되지 않음 */
        int dispsize;  /* 대화상자의 필드 크기(문자) */

    연결 옵션 배열을 반환합니다. 이는 다음에 사용될 수 있습니다. 가능한 모든 것을 결정PQconnectdb옵션 및 현재 기본값. 반환 값은의 배열을 가리킵니다.PQconninfo옵션 구조체27031_27128필드)는 환경에 따라 달라집니다. 변수 및 기타 컨텍스트. 발신자는 다음을 처리해야 합니다. 연결 옵션 데이터는 읽기 전용입니다.

    옵션 배열을 처리한 후 이를 전달하여 해제하세요. 에PQconninfoFree. 이것이라면 완료되지 않으면 호출할 때마다 소량의 메모리가 누출됩니다.PQconndefaults.

    PostgreSQL버전 7.0 이전PQconndefaults이 아닌 정적 배열에 대한 포인터를 반환했습니다. 동적으로 할당된 배열 이는 스레드로부터 안전하지 않았으므로 동작이 변경되었습니다.

  • PQfinish닫기 백엔드에 대한 토토 사이트. 또한에서 사용하는 메모리를 해제합니다.PGconn객체.

    void PQfinish(PGconn *conn)

    백엔드 토토 사이트 시도가 실패하더라도(예: 으로 표시됨PQ상태), 애플리케이션이 호출되어야 합니다.PQfinish다음에서 사용하는 메모리를 해제합니다.PGconn객체.PGconn포인터는 이후에 사용되어서는 안 됩니다PQfinish호출되었습니다.

  • PQreset재설정 백엔드와의 통신 포트입니다.

    void PQreset(PGconn *conn)

    이 함수는 백엔드에 대한 연결을 닫고 동일한 서버에 대한 새 연결을 다시 설정하려고 시도합니다. 이전에 사용된 것과 동일한 매개변수를 모두 사용합니다. 이는 다음과 같습니다. 연결이 작동 중인 경우 오류 복구에 유용합니다. 졌다.

  • PQresetStart PQresetPoll통신 포트 재설정 비차단 방식으로 백엔드와 함께.

    int PQresetStart(PGconn *conn);
    PostgresPollingStatusType PQresetPoll(PGconn *conn);

    이 함수는 백엔드에 대한 연결을 종료합니다 그리고 동일한 연결에 대한 새로운 연결을 다시 시도합니다. 서버에서는 이전에 사용한 것과 동일한 매개변수를 모두 사용합니다. 이 연결이 제대로 작동하는 경우 오류 복구에 유용할 수 있습니다. 길을 잃었다. 그들은 다음과 다릅니다.PQreset(위)는 비차단 방식으로 작동한다는 점입니다. 이것들 함수에는 다음과 같은 제한이 적용됩니다.PQconnectStart그리고PQconnectPoll.

    전화PQresetStart. 그렇다면 0을 반환하면 재설정이 실패했습니다. 1이 반환되면 폴링합니다. 다음을 사용하여 재설정PQresetPoll에 다음을 사용하여 연결을 생성하는 것과 정확히 같은 방식입니다.PQconnectPoll.

libpq응용프로그램 프로그래머는 주의를 기울여 유지해야 합니다.PGconn추상화. 접근자 사용 아래 함수를 사용하여 내용을 확인합니다.PGconn. 필드를 직접 참조하지 마세요. 의PGconn구조이기 때문에 향후 변경될 수 있습니다. (시작부터)포스트그레SQL릴리스 6.4, 정의구조체 PGconn제공되지도 않습니다libpq-fe.h. 오래된 코드가 있는 경우 액세스PGconn필드를 직접적으로 포함하면 계속 사용할 수 있습니다libpq-int.h또한 문제를 해결하는 것이 좋습니다. 코드는 곧 제공됩니다.)

  • PQdb데이터베이스를 반환합니다. 토토 사이트 이름입니다.

    char *PQdb(const PGconn *conn)

    PQdb그리고 다음 몇 가지 함수는 연결 시 설정된 값을 반환합니다. 이것들 값은 수명 동안 고정됩니다.PGconn객체.

  • PQuser사용자 이름을 반환합니다. 토토 사이트의.

    char *PQuser(const PGconn *conn)
  • PQ패스비밀번호를 반환합니다. 토토 사이트의.

    char *PQpass(const PGconn *conn)
  • PQ호스트서버를 반환합니다 연결의 호스트 이름입니다.

    char *PQhost(const PGconn *conn)
  • PQ포트포트를 반환합니다 연결.

    char *PQport(const PGconn *conn)
  • PQtty디버그를 반환합니다.토토 사이트의.

    char *PQtty(const PGconn *conn)
  • PQ옵션다음을 반환합니다. 연결에 사용되는 백엔드 옵션입니다.

    char *PQoptions(const PGconn *conn)
  • PQ상태상태를 반환합니다. 토토 사이트의.

    ConnStatusType PQstatus(const PGconn *conn)

    상태는 여러 값 중 하나일 수 있습니다. 그러나 단지 이 중 두 개는 비동기 토토 사이트 외부에 표시됩니다. 절차 -CONNECTION_OK또는CONNECTION_BAD. 좋은 토토 사이트 데이터베이스에 상태가 있습니다.CONNECTION_OK. 실패한 연결 시도는 다음과 같습니다. 상태로 표시됨CONNECTION_BAD. 일반적으로 OK 상태는 다음까지 유지됩니다.PQfinish, 통신 실패 상태가 다음으로 변경될 수 있습니다.토토 사이트_잘못됨조기. 그 경우에는 애플리케이션이 호출을 통해 복구를 시도할 수 있습니다.PQreset.

    다음 항목 참조PQconnectStart그리고PQconnectPoll기타 상태에 관하여 볼 수 있는 코드입니다.

  • PQerrorMessage 가장 많은 오류 메시지를 반환합니다. 최근 토토 사이트 작업으로 인해 생성되었습니다.

    char *PQerrorMessage(const PGconn* conn);

    거의 모든libpq기능이 설정됩니다PQerrorMessage실패할 경우. 다음을 참고하세요.libpq규칙, 비어 있지 않음PQerrorMessage할 것이다 후행 줄바꿈을 포함합니다.

  • PQbackendPID다음을 반환합니다. 프로세스ID34685_34741

    int PQbackendPID(const PGconn *conn);

    백엔드PID이 디버깅 목적 및 NOTIFY와의 비교에 유용합니다. 메시지(다음을 포함함)PID알림 백엔드의). 참고하세요PID다음에 속합니다. 로컬이 아닌 데이터베이스 서버 호스트에서 실행되는 프로세스 호스트!

  • PQgetssl 다음에 사용된 SSL 구조를 반환합니다. 연결이거나 SSL을 사용하지 않는 경우 NULL입니다.

    SSL *PQgetssl(const PGconn *conn);

    이 구조는 암호화 수준을 확인하는 데 사용할 수 있습니다. 서버 인증서 등을 확인하세요. SSL을 참고하세요 이 구조에 대한 정보를 위한 문서입니다.

    정의해야 합니다.USE_SSL순서대로 이 함수의 프로토타입을 얻으려면 이렇게 하면 또한 자동으로 포함ssl.hfrom오픈SSL.