Postgresql 9.3.25 문서화 | ||||
---|---|---|---|---|
윈 토토 : 문서 : 9.3 : 진행중인 쿼리 취소 | PostgreSQL : 문서 : 9.3 : LIBPQ -C 토토 커뮤니티 | 31 장.libpq-C 라이브러리 | 토토 꽁 머니 : 문서 : 9.3 : 비동기 알림 |
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인수는 다음과 같습니다 실행할 기능.argsandNARGS전달할 매개 변수를 정의합니다 기능에; 선언 된 기능 인수와 일치해야합니다 목록. 때isint필드 a 매개 변수 구조는 사실입니다.U.Integer값은 서버로 전송됩니다 표시된 길이의 정수 (이것은 2 또는 4 바이트 여야합니다); 적절한 바이트 스왑 핑이 발생합니다. 언제isintIS False, 표시된 바이트 수에서*u.ptr처리없이 전송됩니다. 데이터가 있어야합니다 이진 전송을 위해 서버가 기대하는 형식으로 함수의 인수 데이터 유형. ( 선언U.ptr유형의 상태int *역사적입니다. 그것을 고려하는 것이 더 낫다void *.)result_buf포인트 기능의 반환 값을 배치하는 버퍼에. 그만큼 발신자는 반품을 저장하기에 충분한 공간을 할당해야합니다. 값. (점검이 없습니다!) 바이트의 실제 결과 길이는 에 의해 지적 된 정수에 반환됩니다result_len. 2 바이트 또는 4 바이트 정수 결과가있는 경우 예상, setresult_is_int~ 1, 그렇지 않으면 0으로 설정합니다. 설정result_is_int~ 1 원인libpq필요한 경우 값을 바이트로 스왑하려면 그것이 적절한 것으로 전달된다는 것int값 클라이언트 기계의 경우; 4 바이트 정수가 제공됩니다 안으로*result_buf허용 결과 크기. 언제result_is_intis 0, 서버에서 전송 된 바이너리 형식 바이트 스트링이 반환됩니다. 수정되지 않은. (이 경우 고려하는 것이 좋습니다result_buf유형으로무효 *.)
PQFN
항상 유효한 반환pgresult포인터. 결과 상태
결과가 사용되기 전에 확인해야합니다. 발신자입니다
해방 책임pgresultwithPQCLEAR
더 이상 없을 때
필요합니다.
null 인수를 처리하는 것은 불가능하다는 점에 유의하십시오. 이 토토 결과를 사용할 때 결과, 또는 설정 값 결과.