이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.현재버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

윈 토토 실행 기능

데이터베이스 서버에 대한 연결이 성공적으로 이루어지면 설정된 경우 여기에 설명된 함수는 SQL을 수행하는 데 사용됩니다. 윈 토토 및 명령.

  • PQexec다음에 질의를 제출하세요.포스트그레스그리고 기다리세요 결과.

    PGresult *PQexec(PGconn *conn,
                     const char *쿼리);
    PGresult 포인터 또는 NULL 포인터를 반환합니다. 에이 NULL이 아닌 포인터는 일반적으로 메모리 부족을 제외하고 반환됩니다. 쿼리를 보낼 수 없는 등의 조건 또는 심각한 오류 백엔드. NULL이 반환되면 다음과 같이 처리되어야 합니다. PGRES_FATAL_ERROR 결과입니다. 더 많은 정보를 얻으려면 PQerrorMessage를 사용하세요. 오류에 대한 정보입니다.

PGresult구조가 캡슐화됨 백엔드에서 반환된 윈 토토 결과입니다.libpq응용 프로그램 프로그래머는 다음 사항에 주의해야 합니다. PGresult 추상화를 유지합니다. 아래의 접근자 기능을 사용하세요 PGresult의 내용을 얻으려면. 직접적으로 언급하는 것을 피하세요. PGresult 구조의 필드는 변경될 수 있으므로 미래에는. (시작부터)포스트그레스릴리스 6.4, 구조체 정의 PGresult는 libpq-fe.h에서도 제공되지 않습니다. 오래된 코드가 있는 경우 PGresult 필드에 직접 액세스하는 경우 다음과 같이 계속 사용할 수 있습니다. libpq-int.h도 포함되어 있지만 코드를 수정하는 것이 좋습니다. 곧.)

  • PQresultStatus결과를 반환합니다 쿼리 상태. PQresultStatus는 다음 중 하나를 반환할 수 있습니다. 다음 값:

    PGRES_EMPTY_QUERY,
    PGRES_COMMAND_OK, /* 윈 토토는 데이터를 반환하지 않는 명령이었습니다 */
    PGRES_TUPLES_OK, /* 윈 토토가 성공적으로 튜플을 반환했습니다 */
    PGRES_COPY_OUT, /* 복사 출력(서버에서) 데이터 전송이 시작되었습니다 */
    PGRES_COPY_IN, /* 복사(서버로) 데이터 전송이 시작되었습니다 */
    PGRES_BAD_RESPONSE, /* 예상치 못한 응답을 받았습니다 */
    PGRES_NONFATAL_ERROR,
    PGRES_FATAL_ERROR
    결과 상태가 PGRES_TUPLES_OK이면 루틴은 아래에 설명된 튜플은 반환된 튜플을 검색하는 데 사용될 수 있습니다. 쿼리. 0개의 튜플을 검색하는 SELECT가 발생한다는 점에 유의하세요. 여전히 PGRES_TUPLES_OK가 표시됩니다. PGRES_COMMAND_OK는 다음 명령에 사용됩니다. 튜플을 반환할 수 없습니다.
  • PQresStatus변환합니다 PQresultStatus가 문자열로 반환한 열거형 상태 코드를 설명하는 상수입니다.

    const char *PQresStatus(ExecStatusType 상태);
    이전 코드는 직접 액세스를 통해 이와 동일한 작업을 수행할 수 있습니다. libpq 내부의 상수 문자열 배열로,
    extern const char * const pgresStatus[];
    그러나 대신에 함수를 사용하는 것이 좋습니다. 이식성이 뛰어나고 범위를 벗어난 값에서는 실패하지 않습니다.
  • PQresultErrorMessage반환 윈 토토와 관련된 오류 메시지 또는 빈 문자열인 경우 오류는 없었습니다.

    const char *PQresultErrorMessage(PGresult *res);
    PQexec 또는 PQgetResult 호출 직후, PQerrorMessage(연결 시)는 다음과 동일한 문자열을 반환합니다. PQresultErrorMessage(결과에 대해). 그러나 PGresult는 연결이 끊어질 때까지 오류 메시지를 유지하는 반면 후속 작업이 완료되면 오류 메시지가 변경됩니다. 사용 연관된 상태를 알고 싶을 때 PQresultErrorMessage 특정 PGresult로; 원할 때 PQerrorMessage를 사용하십시오. 연결에 대한 최신 작업의 상태를 알 수 있습니다.
  • PQntuples개수를 반환합니다. 윈 토토 결과의 튜플(인스턴스).

    int PQntuples(PGresult *res);
  • PQn필드개수를 반환합니다. 윈 토토 결과의 각 튜플에 있는 필드(속성)입니다.

    int PQnfields(PGresult *res);
  • PQbinaryTuples다음인 경우 1을 반환합니다. PGresult에는 이진 튜플 데이터가 포함되어 있으며, ASCII가 포함되어 있으면 0입니다. 데이터.

    int PQbinaryTuples(PGresult *res);
    현재 바이너리 튜플 데이터는 쿼리로만 반환될 수 있습니다. a에서 데이터를 추출합니다.바이너리커서.
  • PQfname필드를 반환합니다. (속성) 주어진 필드 인덱스와 연관된 이름입니다. 필드 인덱스는 0부터 시작합니다.

    char *PQfname(PGresult *res,
                  int field_index);
  • PQf번호필드를 반환합니다. (속성) 주어진 필드 이름과 연관된 인덱스입니다.

    int PQfnumber(PGresult *res,
                  char* 필드_이름);

    주어진 이름이 일치하지 않는 경우 -1이 반환됩니다. 필드.

  • PQftype필드 유형을 반환합니다. 주어진 필드 인덱스와 연관되어 있습니다. 반환된 정수는 다음과 같습니다. 유형의 내부 코딩. 필드 인덱스는 0부터 시작합니다.

    Oid PQftype(PGresult *res,
                int field_num);
  • PQfsize크기를 바이트 단위로 반환합니다. 주어진 필드 인덱스와 연관된 필드의 정보입니다. 필드 인덱스는 0부터 시작합니다.

    int PQfsize(PGresult *res,
                int field_index);
    PQfsize는 이 필드에 할당된 공간을 데이터베이스 튜플, 즉 서버 바이너리의 크기 데이터 유형의 표현. 필드가 다음과 같은 경우 -1이 반환됩니다. 가변 크기.
  • PQfmod유형별 반환 해당 필드와 연관된 필드의 수정 데이터 색인. 필드 인덱스는 0부터 시작합니다.

    int PQfmod(PGresult *res,
               int field_index);
  • PQgetvalue단일 필드를 반환합니다. (속성) PGresult의 한 튜플 값입니다. 튜플과 필드 인덱스는 0부터 시작합니다.

    char* PQgetvalue(PGresult *res,
                     정수 tup_num,
                     int field_num);
    대부분의 쿼리에서 PQgetvalue에 의해 반환된 값은 속성 값의 널 종료 ASCII 문자열 표현입니다. 그러나 PQbinaryTuples()가 TRUE이면 PQgetvalue에 의해 반환된 값은 내부 형식으로 된 유형의 이진 표현입니다. 백엔드 서버(단, 크기 단어는 포함되지 않음, 필드가 가변 길이입니다). 그렇다면 프로그래머의 책임은 다음과 같습니다. 데이터를 올바른 C 유형으로 캐스팅하고 변환합니다. 포인터 PQgetvalue에 의해 반환된 저장소는 PGresult 구조. 수정해서는 안 되며, 수정해야 합니다. 사용하려는 경우 값을 다른 저장소에 명시적으로 복사합니다. PGresult 구조 자체의 수명이 지났습니다.
  • PQgetlength다음의 길이를 반환합니다. 필드(속성)(바이트). 튜플 및 필드 인덱스는 다음에서 시작됩니다. 0.

    int PQgetlength(PGresult *res,
                    정수 tup_num,
                    int field_num);
    이것은 특정 데이터 값에 대한 실제 데이터 길이입니다. 이는 PQgetvalue가 가리키는 객체의 크기입니다. 참고하세요 ASCII로 표현된 값의 경우 이 크기는 크기와 거의 관련이 없습니다. PQfsize에 의해 보고된 바이너리 크기입니다.
  • PQgetisnull다음에 대한 필드를 테스트합니다. NULL 항목입니다. 튜플 및 필드 인덱스는 0부터 시작합니다.

    int PQgetisnull(PGresult *res,
                    정수 tup_num,
                    int field_num);
    이 함수는 필드에 NULL이 포함되어 있으면 1을 반환하고, NULL이 포함되어 있으면 0을 반환합니다. null이 아닌 값이 포함되어 있습니다. (PQgetvalue는 NULL 필드의 경우 null 포인터가 아닌 빈 문자열입니다.)
  • PQcmd상태명령을 반환합니다 생성한 SQL 명령의 상태 문자열 결과.

    char *PQcmdStatus(PGresult *res);
  • PQcmdTuples개수를 반환합니다. SQL 명령의 영향을 받는 행입니다.

    const char *PQcmdTuples(PGresult *res);
    PGresult를 생성한 SQL 명령이 INSERT인 경우, UPDATE 또는 DELETE, 이는 다음의 수를 포함하는 문자열을 반환합니다. 영향을 받는 행. 명령이 다른 명령인 경우 다음을 반환합니다. 빈 문자열.
  • PQoid상태다음을 포함하는 문자열을 반환합니다. SQL 명령이 다음과 같은 경우 삽입된 튜플의 객체 ID 삽입. 그렇지 않으면 빈 문자열을 반환합니다.

    char* PQoidStatus(PGresult *res);
  • PQ프린트모든 튜플을 인쇄합니다 선택적으로 지정된 출력에 대한 속성 이름 스트림.

    void PQprint(FILE* fout, /* 출력 스트림 */
                 PGresult* 입술,
                 PQprintOpt* po);
    
    구조체 _PQprintOpt
    
                    pqbool 헤더;      /* 출력 필드 제목과 행 개수를 인쇄합니다 */
                    pqbool 정렬;       /* 필드 채우기 채우기 */
                    pqbool 표준;    /* 오래된 뇌사 형식 */
                    pqbool html3;       /* HTML 테이블 출력 */
                    pqbool 확장;    /* 테이블 확장 */
                    pqbool 호출기;       /* 필요한 경우 출력을 위해 호출기를 사용합니다 */
                    char *fieldSep;   /* 필드 구분자 */
                    char *tableOpt;   /* HTML <table ...에 삽입 */
                    문자 *캡션;    /* HTML <캡션 */
                    char **필드명; /* null로 끝나는 대체 필드 이름 배열 */
            ;
    이 함수는 PQprintTuples()를 대체하기 위한 것입니다. 이제 더 이상 사용되지 않습니다.psql프로그램 사용 PQprint()를 사용하여 윈 토토 결과를 표시합니다.
  • PQprintTuples모든 내용을 인쇄합니다. 튜플 및 선택적으로 지정된 속성 이름 출력 스트림.

    void PQprintTuples(PGresult* res,
                       FILE* fout, /* 출력 스트림 */
                       int printAttName,/* 속성 이름 인쇄 여부*/
                       int terseOutput, /* 구분 기호 막대가 있습니까?*/
                       정수 너비);      /* 열 너비, 0인 경우 가변 너비*/
  • PQdisplayTuples모든 내용을 인쇄합니다. 튜플 및 선택적으로 지정된 속성 이름 출력 스트림.

    void PQdisplayTuples(PGresult* res,
                         FILE* fout, /* 출력 스트림 */
                         int fillAlign, /* 열 정렬을 위한 공백 채우기 */
                         const char *fieldSep, /* 필드 구분자 */
                         int printHeader, /* 헤더를 표시합니까? */
                         조용함);           /* 끝에서 행 개수 인쇄를 억제합니다 */
    PQdisplayTuples()는 PQprintTuples()를 대체하기 위해 만들어졌습니다. 그리고 PQprint()로 대체됩니다.
  • PQclear저장공간 확보 PGresult와 연결됩니다. 모든 쿼리 결과는 다음과 같아야 합니다. 더 이상 필요하지 않을 때 PQclear를 통해 해제됩니다.

    void PQclear(PQresult *res);
    당신은 필요한 만큼 PGresult 객체를 유지할 수 있습니다 그것; 새 쿼리를 실행해도 사라지지 않으며, 연결을 닫습니다. 이를 제거하려면 PQclear를 호출해야 합니다. 이렇게 하지 않으면 프런트엔드에서 메모리 누수가 발생합니다. 신청합니다.
  • PQmakeEmptyPGresult을 구성합니다 주어진 상태의 빈 PGresult 객체입니다.

    PGresult* PQmakeEmptyPGresult(PGconn *conn, ExecStatusType 상태);
    할당 및 초기화를 위한 libpq의 내부 루틴입니다. 빈 PGresult 객체. 일부 응용 프로그램 때문에 내보내집니다. 결과 개체(특히 개체)를 생성하는 것이 유용하다는 것을 알았습니다. 오류 상태) 자체. conn이 NULL이 아니고 상태인 경우 오류를 표시하면 연결의 현재 errorMessage가 복사됩니다. PGresult에 넣습니다. PQclear는 결국 호출되어야 합니다. libpq 자체에서 반환된 PGresult와 마찬가지로 객체입니다.