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.정수값은 표시된 길이의 정수로 서버에 전송됩니다(2 또는 4바이트여야 함). 적절한 바이트 교환이 발생합니다. 언제isintfalse, 표시된 바이트 수는*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포인터, 상태 포함PGRES_COMMAND_OK성공을 위해 또는PGRES_FATAL_ERROR어떤 문제가 발생한 경우. 결과를 사용하기 전에 결과 상태를 확인해야 합니다. 호출자는를 해제할 책임이 있습니다.PGresult함께PQclear더 이상 필요하지 않은 경우.
함수에 NULL 인수를 전달하려면, 다음을 설정하십시오.len해당 매개변수 구조의 필드-1; 그만큼isint그리고u필드는 관련이 없습니다. (단, 프로토콜 3.0 이상 연결에서만 작동합니다.)
함수가 NULL을 반환하는 경우,*result_len다음으로 설정됨-1및*result_buf수정되지 않았습니다. (이것은 프로토콜 3.0 이상 연결에서만 작동하며 프로토콜 2.0에서는 둘 다 작동하지 않습니다.*result_len아니요*result_buf수정되었습니다.)
이 인터페이스를 사용할 때는 설정된 값을 처리할 수 없다는 점에 유의하세요. 또한 함수는 집계, 창 함수 또는 프로시저가 아닌 일반 함수여야 합니다.