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.13. Xử lý thông tỷ lệ kèo bóng đá#

Thông tỷ lệ kèo bóng đá và cảnh tỷ lệ kèo bóng đá thông tỷ lệ 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ụ ý lỗ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 tỷ lệ kèo bóng đá và việc thực thi tiếp tục bình thường sau khi trình xử lý trở lại. Hàm xử lý thông tỷ lệ kèo bóng đá mặc định in thông tỷ lệ 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ý thông tỷ lệ kèo bóng đá, được gọi là bộ thu thông tỷ lệ kèo bóng đá và bộ xử lý thông tỷ lệ kèo bóng đá. Hành vi mặc định là để người nhận thông tỷ lệ kèo bóng đá định dạng thông tỷ lệ kèo bóng đá và chuyển một chuỗi cho bộ xử lý thông tỷ lệ kèo bóng đá để in. Tuy nhiên, một ứng dụng chọn cung cấp máy thu thông tỷ lệ kèo bóng đá của riêng mình thường sẽ bỏ qua lớp bộ xử lý thông tỷ lệ kèo bóng đá và chỉ thực hiện tất cả các công việc trong máy thu thông tỷ lệ kèo bóng đá.

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

12362_12760

Mỗi chức năng này trả về Trình nhận thông tỷ lệ kèo bóng đá hoặc 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 tỷ lệ kèo bóng đá hoặc thông tỷ lệ kèo bóng đá cảnh tỷ lệ kèo bóng đá từ máy chủ hoặc được tạo nội bộ bởilibpq, Hàm người nhận thông tỷ lệ kèo bóng đá đượ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 tỷ lệ kèo bóng đá được định dạng hoàn chỉnh bằng cách sử dụngpqresulterrormessagehoặcpqresultverboseerrormessage.) Cùng một khoảng trống được truyền đếnpqsetnoticereceivercũng được tỷ lệ 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 thông tỷ lệ kèo bóng đá mặc định chỉ cần trích xuất thông tỷ lệ kèo bóng đá (sử dụngpqresulterrormessage) và chuyển nó cho bộ xử lý thông tỷ lệ kèo bóng đá.

Bộ xử lý thông tỷ lệ kèo bóng đá chịu trách nhiệm xử lý thông tỷ lệ kèo bóng đá thông tỷ lệ kèo bóng đá hoặc cảnh tỷ lệ kèo bóng đá đượ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 tỷ lệ kèo bóng đá mặc định chỉ đơn giản là:

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

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

Khi bạn đã đặt bộ thu hoặc bộ xử lý thông tỷ lệ kèo bóng đá, 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 làm từ nó tồn tại. Tại Sáng tạo của Apgresult, ThePGConnCác con trỏ xử lý thông tỷ lệ kèo bóng đá 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.