지원되지 않는 버전 :6.3
이 문서는 지원되지 않는 버전의 토토 결과을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다현재버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.
토토 결과
이전 40 장. libpq 다음

기능 관련 기능 사본 명령

Postgres의 사본 명령에는 읽거나 쓸 수있는 옵션이 있습니다. 에 사용 된 네트워크 연결에libpq. 따라서이 네트워크에 액세스하려면 기능이 필요합니다 응용 프로그램이이를 최대한 활용할 수 있도록 직접 연결 능력.

  • pqgetlineNewline-Terminated를 읽습니다 문자 라인 (백엔드 서버에서 전송)으로 크기 길이의 버퍼 스트링. fgets (3)와 마찬가지로이 일상 최대 1 개의 문자를 문자열로 복사합니다. 같다 그러나 gets (3)는 종료 Newline을 변환한다는 점에서 (3) 널 캐릭터로. pqgetline은 eof에서 eof를 반환합니다 전체 라인이 읽히고 버퍼가 가득 차면 1 Newline이 끝나는 것은 아직 읽지 않았습니다. 그것을 주목하십시오 신청서가 새 라인이 구성되어 있는지 확인해야합니다. 단일 문자 ".", 이것은 백엔드 서버를 나타냅니다 사본 명령의 결과를 완료했습니다. 따라서 응용 프로그램이 줄을받을 것으로 예상되는 경우 응용 프로그램 인 길이가 길고 길이가 길다 pqgetline의 반환 값을 매우 확인해야합니다. 주의하여. 코드../ src/bin/psql/psql.c루틴을 포함합니다 복사 프로토콜을 올바르게 처리합니다.

    int pqgetline (pgconn *conn,
                  char *string,
                  int 길이)
  • pqputline무효가 종결된다 백엔드 서버에 문자열. 응용 프로그램은 명시 적으로해야합니다 단일 캐릭터를 보내십시오 "". " 백엔드를 나타 내기 위해 데이터 보내기가 완료되었습니다.

    void pqputline (pgconn *conn,
                   char *string);
  • PQENDCOPY백엔드와 동기화됩니다. 이 기능은 백엔드가 사본을 마칠 때까지 기다립니다. 그것 마지막 문자열이 전송 될 때 발행해야합니다. pqputline을 사용한 백엔드 또는 마지막 문자열이 pggetline을 사용하여 백엔드에서 수신했습니다. 발행해야합니다 백엔드는 프론트 엔드와 "동기화"를 얻을 수 있습니다. 에 이 기능에서 반환하면 백엔드는 다음 쿼리. 성공적인 완료시 반환 값은 0입니다. 그렇지 않으면 0이 아닌 것입니다.

    int pqendcopy (pgconn *conn);
    pqexec (conn, "테이블 foo (int4, b char16, d float8) 만들기");
    pqexec (conn, "stdin에서 foo를 복사한다");
    pqputline (conn, "3 <tab hello world <tab 4.5 \ n");
    pqputline (conn, "4 <tab Goodbye World <tab 7.11 \ n");
    ...
    pqputline (conn, ". \ n");
    pqendcopy (conn);

이전 다음
비동기 공고 up libpq 추적 기능