롤 토토 : 문서 : 9.5 : 롤 토토 | |||
---|---|---|---|
스포츠 토토 결과 : 문서 : 9.5 : 진행중인 쿼리 취소 | PostgreSQL : 문서 : 9.5 : LIBPQ -C 토토 | 31 장.libpq-C 라이브러리 | PostgreSQL : 문서 : 9.5 : 비동기 범퍼카 토토 |
PostgreSQL간단한 기능 호출을 서버로 보내기위한 빠른 경로 롤 토토를 제공합니다.
팁 :이 인터페이스는 기능 호출을 정의하기 위해 준비된 명령문을 설정하여 유사한 성능과 더 큰 기능을 달성 할 수 있으므로 다소 쓸모가 없습니다. 그런 다음 빠른 경로 함수 호출을위한 매개 변수 및 결과 대체의 이진 전송으로 명령문을 실행합니다.
함수PQFN
빠른 경로 롤 토토를 통한 서버 기능의 실행 요청 :
pgresult *pqfn (pgconn *conn, int fnid, int *result_buf, int *result_len, int result_is_int, const pqargblock *args, int nargs); typedef struct int len; int isint; 노동 조합 int *ptr; int 정수; u; pqargblock;
thefnid인수는 실행될 함수의 OID입니다.argsandNARGS함수로 전달할 매개 변수를 정의합니다. 선언 된 기능 인수 목록과 일치해야합니다. 때isint매개 변수 구조의 필드는 사실입니다.u.integer값은 표시된 길이의 정수로 서버로 전송됩니다 (이것은 2 또는 4 바이트 여야 함); 적절한 바이트 스왑 핑이 발생합니다. 언제isint거짓, 표시된 바이트 수는입니다.*u.ptr처리없이 전송됩니다. 데이터는 기능의 인수 데이터 유형의 바이너리 전송을 위해 서버가 예상하는 형식이어야합니다. ( 선언U.ptr유형의 상태int *역사적입니다. 그것을 고려하는 것이 더 낫다void *.)result_buf함수의 리턴 값을 배치 할 버퍼를 가리 킵니다. 발신자는 반환 값을 저장하기에 충분한 공간을 할당해야합니다. (점검이 없습니다!) 바이트의 실제 결과 길이는 정수에 의해 반환됩니다.result_len. 2 바이트 또는 4 바이트 정수 결과가 예상되면 설정result_is_intto 1, 그렇지 않으면 0으로 설정합니다. 설정result_is_int~ 1 원인libpq필요한 경우 값을 바이트로 스왑하여 적절한 것으로 전달되도록int클라이언트 시스템의 값; 4 바이트 정수가에 전달됩니다.*result_buf허용 결과 크기 중 하나입니다. 언제result_is_intIS 0, 서버가 전송하는 이진 형식 바이트 스트링은 수정되지 않은 반환됩니다. (이 경우 고려하는 것이 좋습니다result_buf유형의 상태void *.)
PQFN
항상 유효한 반환pgresult포인터. 결과 상태는 결과를 사용하기 전에 확인해야합니다. 발신자는를 해제 할 책임이 있습니다pgresultwithPQCLEAR
더 이상 필요하지 않은 경우.
이 롤 토토를 사용할 때는 널 인수, 널 결과 또는 설정 값 결과를 처리 할 수 없습니다.