이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
다음에 대한 동일한 페이지를 보고 싶을 수도 있습니다.젠 토토 : 문서 : 17 : 32.8. 빠른 경로 인터페이스버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

31.7. 빠른 경로 토토 결과

PostgreSQL빠른 경로 제공 서버에 간단한 함수 호출을 보내는 토토 결과입니다.

팁:이 인터페이스는 다소 구식입니다. 설정을 통해 비슷한 성능과 더 뛰어난 기능을 얻을 수 있습니다. 함수 호출을 정의하기 위해 준비된 명령문입니다. 그런 다음 실행 매개변수 및 결과의 이진 전송이 포함된 명령문 빠른 경로 함수 호출을 대체합니다.

함수PQfn요청 빠른 경로 토토 결과를 통한 서버 기능 실행:

PGresult *PQfn(PGconn *conn,
               int fnid,
               정수 *result_buf,
               정수 *result_len,
               정수 결과_is_int,
               const PQArgBlock *args,
               int nargs);

typedef 구조체

    int len;
    int isint;
    노동조합

        int *ptr;
        정수 정수;
     당신;
 PQArgBlock;

프니드인수는 OID입니다. 함수가 실행됩니다.인수그리고나그스전달할 매개변수 정의 기능에; 선언된 함수 인수와 일치해야 합니다. 목록. 때isint필드 매개변수 구조가 true인 경우,u.integer값이 서버로 전송됩니다. 표시된 길이의 정수(2 또는 4바이트여야 함) 적절한 바이트 교환이 발생합니다. 언제isint이다 false, 에 표시된 바이트 수*u.ptr처리 없이 전송됩니다. 데이터는 반드시 바이너리 전송을 위해 서버에서 예상하는 형식이어야 합니다. 함수의 인수 데이터 유형입니다. (선언u.ptr유형으로정수 *역사적입니다. 고려해 보는 것이 좋을 것 같습니다무효 *.) result_buf포인트 함수의 반환 값을 넣을 버퍼에. 는 호출자는 반환을 저장할 충분한 공간을 할당해야 합니다. 가치. (확인은 없습니다!) 실제 결과 길이(바이트)는 가 가리키는 정수로 반환됩니다.result_len. 2바이트 또는 4바이트 정수 결과가 다음과 같은 경우 예상됨, 설정됨result_is_int1로, 그렇지 않으면 0으로 설정합니다. 설정result_is_int원인 1개에libpq필요한 경우 값을 바이트 교환하므로 제대로 전달된다는 점int값 클라이언트 컴퓨터의 경우; 4바이트 정수가 전달된다는 점에 유의하세요. 안으로*result_buf두 가지 모두 허용됨 결과 크기. 언제result_is_int은 0, 서버가 보낸 바이너리 형식 바이트 문자열이 반환됩니다. 수정되지 않은. (이 경우 고려하는 것이 좋습니다.)result_buf유형으로서공허 *.)

PQfn항상 유효한 값을 반환합니다.PGresult포인터. 결과 상태 결과를 사용하기 전에 확인해야 합니다. 발신자는 해제를 담당합니다.PGresult함께PQclear더 이상 존재하지 않을 때 필요합니다.

Null 인수를 처리할 수 없다는 점에 유의하십시오. null 이 인터페이스를 사용할 때 결과 또는 설정된 값 결과가 없습니다.