Phiên bản được hỗ trợ:hiện tại(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 cho phiên bản không được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cùng cách đọc kèo bóng đá trang chohiện tạiPhiên bản hoặc cách đọc kèo bóng đá trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

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

Thông cách đọc kèo bóng đá thông cách đọc kèo bóng đá và cảnh cách đọc kèo bóng đá 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 thông cách đọc kèo bóng đá chức năng xử lý và thực thi tiếp tục bình thường sau khi Handler trở lại. Hàm xử lý thông cách đọc kèo bóng đá mặc định in thông 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 đọc kèo bóng đá cung cấp xử lý riêng của nó chức năng.

Vì lý do lịch sử, có hai cấp độ thông cách đọc kèo bóng đá Xử lý, được gọi là bộ thu thông cách đọc kèo bóng đá và bộ xử lý thông cách đọc kèo bóng đá. Các Hành vi mặc định dành cho người nhận thông cách đọc kèo bóng đá để định dạng thông cách đọc kèo bóng đá và chuyển một chuỗi cho bộ xử lý thông cách đọc kèo bóng đá để in. Tuy nhiên, một ứng dụng chọn cung cấp máy thu thông cách đọc kèo bóng đá của riêng mình thường sẽ bỏ qua lớp bộ xử lý thông cách đọc kèo bóng đá và chỉ làm tất cả công việc trong máy thu thông cách đọc kèo bóng đá.

hàmpqsetnoticereceiverĐặt hoặc kiểm tra máy thu thông 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 Bộ xử lý thông cách đọc kèo bóng đá hiện tại.

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 thông cách đọc kèo bóng đá trước đó hoặc con trỏ hàm bộ xử lý và đặt giá trị mới. Nếu bạn cung cấp một con trỏ hàm 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ề.

12331_12424libpq, Hàm người nhận thông cách đọc kèo bóng đá là gọi điện. Nó được truyền tin nhắn dưới dạngPGRES_NONFATAL_ERROR pgresult. (Điều này cho 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 thông cách đọc kèo bóng đá được định dạng trước bằng cách sử dụngpqresulterrormessage.) Cùng cách đọc kèo bóng đá khoảng trống con trỏ được truyền chopqsetnoticereceiverIS cũng đã qua. (Con trỏ này có thể được sử dụng để truy cập Trạng thái cụ thể của ứng dụng nếu cần.)

Trình nhận thông cách đọc kèo bóng đá mặc định chỉ cần trích xuất thông cách đọc kèo bóng đá (sử dụngpqresulterrormessage) và vượt qua nó cho bộ xử lý thông cách đọc kèo bóng đá.

Bộ xử lý thông cách đọc kèo bóng đá chịu trách nhiệm xử lý thông cách đọc kèo bóng đá hoặc Thông cách đọc kèo bóng đá cảnh cách đọc kèo bóng đá được đưa ra dưới dạng văn bản. Nó được truyền 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 khoảng trống con trỏ giống nhau được truyền đếnPQSetNoticeProcessor. (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ộ xử lý thông cách đọc kèo bóng đá mặc định chỉ đơn giản là:

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

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

Một khi bạn đã đặt một bộ thu hoặc bộ xử lý thông 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 tạo từ nó tồn tại. Tại Sáng tạo của cách đọc kèo bóng đápgresult, ThePGConnXử lý thông cách đọc kèo bóng đá hiện tại Con trỏ được sao chép vàoPGRESULTĐể sử dụng có thể bởi các chức năng nhưPQGetValue.