Phiên bản được hỗ trợ:3531_3540(17) /16 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4
Tài liệu này dành cách đọc kèo bóng đá phiên bản không được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cùng một trang cách đọc kèo bóng đáhiện tạiPhiên bản hoặc một trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

31.12. Xử lý cách đọc kèo bóng đá

cách đọc kèo bóng đá cách đọc kèo bóng đá và cảnh báo do máy chủ tạo ra không được trả về bởi các chức năng thực thi truy vấn, vì chúng không ngụ ý Thất bại của truy vấn. Thay vào đó chúng được chuyển cho một xử lý cách đọc kèo bóng đá chức năng và thực thi tiếp tục bình thường sau khi xử lý trả lại. Hàm xử lý cách đọc kèo bóng đá mặc định in cách đọc kèo bóng đá trênstderr, nhưng ứng dụng có thể ghi đè Hành vi này bằng cách cung cấp chức năng xử lý của chính nó.

Vì lý do lịch sử, có hai cấp độ xử lý cách đọc kèo bóng đá, được gọi là bộ thu cách đọc kèo bóng đá và bộ xử lý cách đọc kèo bóng đá. Mặc định hành vi dành cho người nhận cách đọc kèo bóng đá để định dạng cách đọc kèo bóng đá và truyền Chuỗi đến bộ xử lý cách đọc kèo bóng đá để in. Tuy nhiên, một Ứng dụng chọn cung cấp máy thu cách đọc kèo bóng đá của riêng mình thường bỏ qua lớp bộ xử lý cách đọc kèo bóng đá và chỉ thực hiện tất cả các làm việc trong máy thu cách đọc kèo bóng đá.

hàmpqsetnoticereceiverĐặt hoặc kiểm tra máy thu cách đọc kèo bóng đá hiện tại cho kết nối sự vật. Tương tự,PQSetNoticeProcessorĐặt hoặc kiểm tra hiện tại Bộ xử lý cách đọc kèo bóng đá.

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);

Mỗi chức năng này trả về đầu thu cách đọc kèo bóng đá trước đó hoặc Bộ xử lý con trỏ chức năng và đặt giá trị mới. Nếu bạn cung cấp một con trỏ chức năng null, không có hành động nào được thực hiện, nhưng con trỏ hiện tại được trả về.

Khi nhận được cách đọc kèo bóng đá hoặc cách đọc kèo bóng đá cảnh báo từ máy chủ hoặc được tạo bên trong bởilibpq, The Hàm nhận cách đọc kèo bóng đá được gọi. Nó được truyền tin nhắn trong Mẫu của APGRES_NONFATAL_ERROR pgresult. (Điều này cách đọc kèo bóng đá phép người nhận trích xuất Các trường cá nhân sử dụngpqresulterrorfieldhoặc hoàn chỉnh tin nhắn sử dụngpqresulterrormessage.) Con trỏ khoảng trống tương tự được truyền đếnpqsetnoticereceivercũng được cách đọc kèo bóng đá qua. (Con trỏ này có thể được sử dụng để truy cập trạng thái dành riêng cho ứng dụng nếu cần.)

Bộ thu cách đọc kèo bóng đá mặc định chỉ cần trích xuất cách đọc kèo bóng đá (sử dụngpqresulterrormessage12961_13003

Bộ xử lý cách đọc kèo bóng đá chịu trách nhiệm xử lý cách đọc kèo bóng đá hoặc cách đọc kèo bóng đá cảnh báo được đưa ra dưới dạng văn bản. Nó được thông qua văn bản chuỗi của thông điệp (bao gồm cả một dòng mới), cộng với một con trỏ trống đó là cùng một cái được chuyển choPQSetNoticeProcessor. (Con trỏ này có thể được sử dụng Để truy cập trạng thái dành riêng cách đọc kèo bóng đá ứng dụng nếu cần.)

13368_13409

void tĩnh
DefaultNoticeProcessor (void *arg, const char *message)

    fprintf (stderr, "%s", tin nhắn);

Một khi bạn đã đặt bộ thu hoặc bộ xử lý cách đọc kèo bóng đá, bạn nên mong đợi rằng chức năng đó có thể được gọi là miễn làPGConnĐối tượng hoặcpgresultCác đối tượng được làm từ nó tồn tại. Tại sáng tạo của Apgresult, ThePGConnCon trỏ xử lý cách đọc kèo bóng đá hiện tại là được sao chép vàoPGRESULTcách đọc kèo bóng đá có thể sử dụng bởi các chức năng nhưPQGetValue.