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

30.11. 알아채다 처리

서버에서 생성 한 통지 및 경고 메시지는 쿼리 실행 함수에 의해 반환되었습니다. 쿼리 실패를 암시합니다. 대신 그들은 통지에 전달됩니다 처리 기능 및 실행은 정상적으로 계속됩니다 핸들러 반환. 기본 통지 처리 기능은 다음을 인쇄합니다 메시지Stderr그러나 응용 프로그램 자체 취급을 제공 하여이 동작을 무시할 수 있습니다 기능.

역사적 이유로 두 가지 수준의 윈 토토가 있습니다 윈 토토 수신자 및 윈 토토 프로세서라고하는 처리, 그만큼 기본 동작은 윈 토토 수신자가 윈 토토를 형식화하는 것입니다. 인쇄를 위해 문자열을 윈 토토 프로세서에 전달하십시오. 하지만, 자체 윈 토토 수신자를 제공하기로 선택한 응용 프로그램 일반적으로 윈 토토 프로세서 계층을 무시하고 모든 작업을 수행합니다. 윈 토토 수신자의 작업.

함수PQSETNOTICERECEIVER 현재 통지 수신기를 설정하거나 검사합니다 연결 객체. 비슷하게,pqsetnoticeProcessor 세트 또는 현재 통지 프로세서를 검사합니다.

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

    PQNOTICERECEIVER
    pqsetnoticereceiver (pgconn *conn,
                        PQNOTICERECEIVER PROC,
                        void *arg);

    typedef void ( *pqnoticeProcessor) (void *arg, const char *message);

    pqnoticeprocessor
    pqsetnoticeprocessor (pgconn *conn,
                         pqnoticeprocessor proc,
                         void *arg);

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

서버에서 윈 토토 또는 경고 메시지가 수신되면 또는 내부적으로 생성libpq, 통지 수신자 함수는 다음과 같습니다 라고 불리는. 그것은 a의 형태로 메시지를 전달합니다.pgres_nonfatal_error pgresult. (이것은 수신기가 추출 할 수있게한다 사용 개별 분야pqresulterrorfield또는 완료 를 사용하여 사전 포맷 된 메시지PQRESULTERRORMESSAGE.) 동일한 공극 포인터 전달PQSETNOTICERECEIVERIS 또한 통과했습니다. (이 포인터는 액세스하는 데 사용될 수 있습니다 필요한 경우 응용 프로그램 별 상태.)

기본 윈 토토 수신기는 간단히 메시지를 추출합니다 (사용PQRESULTERRORMESSAGE)와 통과합니다 윈 토토 프로세서에.

윈 토토 프로세서는 윈 토토를 처리하거나 텍스트 형식으로 제공되는 경고 메시지. 문자열 텍스트가 전달됩니다 메시지 (후행 신성 라인 포함)와 공허함 동일한 포인터와 같은 포인터pqsetnoticeprocessor. (이 포인터를 사용할 수 있습니다 필요한 경우 응용 프로그램 별 상태에 액세스하려면.)

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

정적 무효
defaultNoticeProcessor (void *arg, const char *메시지)

    fprintf (stderr, "%s", 메시지);

일단 통지 수신자 또는 프로세서를 설정하면 그 함수가만큼 오랫동안 호출 될 수있을 것으로 예상합니다.pgconn개체 또는pgresult그로 만든 물체가 존재합니다. ~에 A 생성pgresult,pgconn의 현재 통지 처리 포인터는에 복사됩니다.pgresult같은 기능으로 가능한 사용pqgetValue.