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 một trang chohiệ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ế.

32.12. Xử lý thông kèo bóng đá c1

Thông kèo bóng đá c1 và cảnh kèo bóng đá c1 thông kèo bóng đá c1 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 đến một chức năng xử lý thông kèo bóng đá c1 và việc thực thi tiếp tục bình thường sau khi trình xử lý trở lại.stderr, 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ý thông kèo bóng đá c1, được gọi là bộ thu thông kèo bóng đá c1 và bộ xử lý thông kèo bóng đá c1. Hành vi mặc định là để người nhận thông kèo bóng đá c1 định dạng thông kèo bóng đá c1 và chuyển một chuỗi cho bộ xử lý thông kèo bóng đá c1 để in.

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

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

Mỗi chức năng này trả về đầu thu thông kèo bóng đá c1 hoặc con trỏ hàm bộ xử lý trước đó 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ề.

Khi nhận được thông kèo bóng đá c1 hoặc thông kèo bóng đá c1 cảnh kèo bóng đá c1 từ máy chủ hoặc được tạo nội bộ bởilibpq, Hàm người nhận thông kèo bóng đá c1 được gọi. 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 riêng lẻ bằng cách sử dụngpqresulterrorfieldhoặc có được thông kèo bóng đá c1 được định dạng sẵn hoàn chỉnh bằng cách sử dụngpqresulterrormessagehoặcPQResultverBoseErrmessage.) Cùng một khoảng trống được truyền đếnpqsetnoticereceivercũng được thô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 thông kèo bóng đá c1 mặc định chỉ cần trích xuất thông kèo bóng đá c1 (sử dụngpqresulterrormessage) và chuyển nó cho bộ xử lý thông kèo bóng đá c1.

Bộ xử lý thông kèo bóng đá c1 chịu trách nhiệm xử lý thông kèo bóng đá c1 thông kèo bóng đá c1 hoặc cảnh kèo bóng đá c1 được đưa ra ở dạng văn bản. Nó được truyền văn bản chuỗi của tin nhắn (bao gồm cả dòng mới), cộng với một con trỏ khoảng trống 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 kèo bóng đá c1 mặc định chỉ đơn giản là:

void tĩnh

Một khi bạn đã đặt một bộ thu hoặc bộ xử lý thông kèo bóng đá c1, bạn nên mong đợi rằng chức năng đó có thể được gọi 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 APGRESULT, ThePGConnCon trỏ xử lý thông kèo bóng đá c1 hiện tại được sao chép vàopgresultĐể sử dụng có thể bởi các chức năng nhưPQGetValue.