이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다PostgreSQL : 문서 : 17 : 32.13. 스포츠 토토 처리버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

31.12. 젠 토토 처리

서버에서 생성 된 젠 토토 및 경고 메시지는 쿼리 실패를 암시하지 않기 때문에 쿼리 실행 함수에 의해 반환되지 않습니다. 대신 젠 토토 처리 기능으로 전달되며 핸들러가 반환 한 후에는 일반적으로 실행이 계속됩니다.Stderr, 그러나 응용 프로그램은 자체 취급 기능을 제공 하여이 동작을 무시할 수 있습니다.

역사적 이유로, 젠 토토 수신자 및 젠 토토 프로세서라는 두 가지 수준의 젠 토토 처리가 있습니다. 기본 동작은 젠 토토 수신자가 젠 토토를 포맷하고 인쇄를 위해 젠 토토 프로세서에 문자열을 전달하는 것입니다.

함수PQSETNOTICERECEIVER연결 객체에 대한 현재 통지 수신자를 설정하거나 검사합니다. 비슷하게,pqsetnoticeProcessor현재 통지 프로세서를 설정하거나 검토합니다.

typedef void ( *pqnoticereceiver) (void *arg, const pgresult *res);

이러한 각 함수는 이전 통지 수신기 또는 프로세서 기능 포인터를 반환하고 새 값을 설정합니다. NULL 기능 포인터를 제공하면 조치가 취하지 않지만 현재 포인터는 반환됩니다.

서버에서 젠 토토 또는 경고 메시지가 수신되거나 내부적으로 생성되는 경우libpq, 통지 수신자 함수가 호출됩니다. 그것은 a의 형태로 메시지를 전달합니다.pgres_nonfatal_error pgresult. (이를 통해 수신기가 사용을 사용하여 개별 필드를 추출 할 수 있습니다pqresulterrorfield또는 또는 완전한 미리 형식화 된 메시지를 사용하여PQRESULTERRORMESSAGE.) 동일한 공극 포인터가 전달되었습니다PQSETNOTICERECEIVER도 통과됩니다. (이 포인터는 필요한 경우 응용 프로그램 별 상태에 액세스하는 데 사용할 수 있습니다.)

기본 젠 토토 수신기는 단순히 메시지를 추출합니다 (사용PQRESULTERRORMESSAGE) 그리고 그것을 젠 토토 프로세서로 전달합니다.

젠 토토 프로세서는 텍스트 양식으로 제공된 젠 토토 또는 경고 메시지를 처리 ​​할 책임이 있습니다. 그것은 메시지의 문자열 텍스트 (후행 신성 라인 포함)와 동일한 포인터와 동일한 포인터가 전달됩니다.pqsetnoticeProcessor. (이 포인터는 필요한 경우 응용 프로그램 별 상태에 액세스하는 데 사용할 수 있습니다.)

기본 젠 토토 프로세서는 간단합니다.

정적 무효

일단 젠 토토 수신자 또는 프로세서를 설정하면 해당 기능이만큼 오랫동안 호출 될 수 있어야합니다.pgconn개체 또는pgresult그로 만들어진 개체가 존재합니다. A의 창조시pgresult, Thepgconn의 현재 통지 처리 포인터가에 복사되었습니다.pgresult같은 기능으로 사용 가능pqgetValue.