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 tỷ lệ kèo bóng đá tối nay các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

47.2. Báo cáo tỷ lệ kèo bóng đá tối nay trong Máy chủ

tỷ lệ kèo bóng đá tối nay, cảnh báo và tin nhắn nhật ký được tạo trong máy chủ Mã phải được tạo bằng cách sử dụngEREPORThoặc anh em họ cũ của nóELOG. Việc sử dụng chức năng này rất phức tạp đủ để yêu cầu một số giải thích.

Có hai yếu tố bắt buộc cho mỗi thông tỷ lệ kèo bóng đá tối nay: Mức độ nghiêm trọng Cấp độ (từDebugđếnPanic) và một văn bản tin nhắn chính. Ngoài ra Có các yếu tố tùy chọn, phổ biến nhất là tỷ lệ kèo bóng đá tối nay Mã định danh tuân theo các quy ước SQLState của SQL Spec.EREPORT11591_11799EREPORTlà mức độ nghiêm trọng. Chính văn bản tin nhắn và bất kỳ yếu tố tin nhắn tùy chọn nào được tạo bởi Gọi các chức năng phụ trợ, chẳng hạn nhưerrmsg, tỷ lệ kèo bóng đá tối nayEREPORTcuộc gọi.

Một cuộc gọi điển hình đếnEREPORTcó thể trông giống như thế này:

EREPORT (tỷ lệ kèo bóng đá tối nay,
        (errcode (errcode_division_by_zero),
         errmsg ("Division by Zero")));

Điều này chỉ định mức độ nghiêm trọng của tỷ lệ kèo bóng đá tối nayERROR(một tỷ lệ kèo bóng đá tối nay chạy bộ). Theerrcodecuộc gọi Chỉ định mã tỷ lệ kèo bóng đá tối nay SQLSTATE Sử dụng một macro được xác định trongSRC/bao gồm/Utils/errcodes.h. The12610_12618cuộc gọi cung cấp văn bản tin nhắn chính. Chú ý tập hợp thêm các dấu ngoặc đơn xung quanh phụ trợ Các cuộc gọi chức năng - Đây là những khó chịu nhưng về mặt cú pháp cần thiết.

Đây là một ví dụ phức tạp hơn:

EREPORT (tỷ lệ kèo bóng đá tối nay,
        (errcode (errcode_ambiguter_function),
         errmsg ("hàm %s không phải là duy nhất",
                func_signature_string (funcname, nargs,
                                      Nil, thực tế_arg_types)),
         Errhint ("Không thể chọn chức năng ứng cử viên tốt nhất."
                 "Bạn có thể cần thêm typecasts rõ ràng.")));

Điều này minh họa việc sử dụng mã định dạng để nhúng thời gian chạy giá trị thành một văn bản tin nhắn. Ngoài ra, một tùy chọn"Gợi ý"Tin nhắn được cung cấp.

Các thói quen phụ trợ có sẵn choEREPORTlà:

  • errcode (sqlerrcode)Chỉ định mã định danh tỷ lệ kèo bóng đá tối nay SQLSTATE cho tình trạng. Nếu thói quen này không được gọi, tỷ lệ kèo bóng đá tối nay định danh mặc định làerrCode_Internal_errorKhi mức độ nghiêm trọng của tỷ lệ kèo bóng đá tối nay Cấp độERRORhoặc cao hơn,errcode_warningKhi mức tỷ lệ kèo bóng đá tối nay làCảnh tỷ lệ kèo bóng đá tối nay, nếu không (choThông tỷ lệ kèo bóng đá tối nayvà bên dưới)errCode_successful_completion. tỷ lệ kèo bóng đá tối nay khi những điều này mặc định thường thuận tiện, luôn luôn nghĩ rằng họ có phải là thích hợp trước khi bỏ quaerrcode ()cuộc gọi.

  • errmsg (const char *msg, ...)Chỉ định văn bản thông báo tỷ lệ kèo bóng đá tối nay chính và có thể giá trị thời gian chạy để chèn vào nó. Chèn được chỉ định quaSprintf14535_14623Sprintf, Mã định dạng%mcó thể được sử dụng để chèn tỷ lệ kèo bóng đá tối nay Tin nhắn được trả về bởiStrerrorĐối với giá trị hiện tại củaerrno. [1] %m15009_15085errmsg. Lưu ý rằng chuỗi tin nhắn sẽ được chạy quaGetTextĐể định vị có thể trước khi Mã định dạng được xử lý.

  • 15344_15389giống nhưerrmsg, ngoại trừ chuỗi tin nhắn sẽ không được dịch cũng không được bao gồm tỷ lệ kèo bóng đá tối nay quốc tế hóa Từ điển tin nhắn. Điều này nên được sử dụng cho"Không thể xảy ra"Các trường hợp có lẽ không Đáng giá để sử dụng nỗ lực dịch trên.

  • 15785_15884giống nhưerrmsg, nhưng với sự hỗ trợ cho các hình thức số nhiều khác nhau của thông điệp.fmt_singularlà tiếng Anh Định dạng số ít,fmt_plurallà định dạng số nhiều tiếng Anh,nlà giá trị số nguyên xác định dạng số nhiều là cần thiết, và các đối số còn lại là được định dạng theo chuỗi định dạng đã chọn. Để biết thêm Thông tin xemPhần 48.2.2.

  • errdetail (const char *msg, ...)Cung cấp tùy chọn"Chi tiết"Tin nhắn; Điều này sẽ được sử dụng khi có thêm thông tin có vẻ không phù hợp với đặt vào thông điệp chính. Chuỗi tin nhắn được xử lý theo cách tương tự như choerrmsg.

  • errdetail_log (const char *msg, ...)giống nhưerrdetailNgoại trừ chuỗi này chỉ đi đến nhật ký tỷ lệ kèo bóng đá tối nay chủ, không bao giờ với tỷ lệ kèo bóng đá tối nay khách. Nếu cả haierrdetailerrdetail_logđược sử dụng thì một chuỗi đi cho khách hàng và cái khác vào nhật ký. Điều này hữu ích cho Chi tiết tỷ lệ kèo bóng đá tối nay quá nhạy cảm với bảo mật hoặc quá cồng kềnh Bao gồm trong báo cáo được gửi đến máy khách.

  • 17506_17608giống nhưerrdetail,, Nhưng với sự hỗ trợ cho các hình thức số nhiều khác nhau của thông điệp. Vì Thêm thông tin xemPhần 48.2.2.

  • errhint (const char *msg, ...)Cung cấp tùy chọn"Gợi ý"Tin nhắn; Điều này sẽ được sử dụng khi đưa ra đề xuất về cách khắc phục sự cố, trái ngược để chi tiết thực tế về những gì đã sai. Chuỗi tin nhắn được xử lý theo cách tương tự nhưerrmsg.

  • errcontext (const char *msg, ...)thường không được gọi trực tiếp từEREPORTTrang web tin nhắn; đúng hơn là nó được sử dụng tỷ lệ kèo bóng đá tối nayERROR_CONTEXT_STACKCác chức năng gọi lại để cung cấp thông tin về ngữ cảnh trong đó xảy ra tỷ lệ kèo bóng đá tối nay, chẳng hạn như vị trí hiện tại trong một Hàm PL. Chuỗi tin nhắn được xử lý chỉ giống nhau Cách như choerrmsg. Không giống như Các chức năng phụ trợ khác, điều này có thể được gọi nhiều hơn một lần mỗiEREPORTcuộc gọi; các do đó các chuỗi liên tiếp được cung cấp được kết hợp với Tách Newline.

  • errPocation (int cursorpos)19093_19299

  • errcode_for_file_access ()IS một chức năng thuận tiện chọn một sqlstate thích hợp Mã định danh tỷ lệ kèo bóng đá tối nay cho tỷ lệ kèo bóng đá tối nay trong truy cập tệp liên quan đến truy cập tệp cuộc gọi hệ thống. Nó sử dụng đã lưuerrnoĐể xác định mã tỷ lệ kèo bóng đá tối nay nào sẽ tạo. Thường là điều này nên được sử dụng kết hợp với%mTrong văn bản thông báo tỷ lệ kèo bóng đá tối nay chính.

  • errcode_for_socket_access ()là một hàm tiện lợi để chọn một Định danh tỷ lệ kèo bóng đá tối nay SQLSTATE cho tỷ lệ kèo bóng đá tối nay liên quan đến ổ cắm cuộc gọi hệ thống.

  • errHidestMt (bool hid_stmt)có thể được gọi để chỉ định việc đàn ápTuyên bố:phần của tin nhắn tỷ lệ kèo bóng đá tối nay Nhật ký Postmaster. Nói chung điều này là phù hợp nếu tin nhắn văn bản bao gồm câu lệnh hiện tại.

Có một hàm cũELOGĐiều đó vẫn được sử dụng nhiều. MỘTELOGcuộc gọi:

ELOG (cấp, "Chuỗi định dạng", ...);

hoàn toàn tương đương với:

20634_20694

Lưu ý rằng mã tỷ lệ kèo bóng đá tối nay SQLSTATE luôn được mặc định và Chuỗi tin nhắn không phải là dịch. Vì thế,ELOGChỉ nên sử dụng tỷ lệ kèo bóng đá tối nay nội bộ và ghi nhật ký gỡ tỷ lệ kèo bóng đá tối nay cấp thấp. Bất kỳ thông báo nào là có khả năng được người dùng thông thường quan tâmEREPORT. Tuy nhiên, có đủ nội bộ"Không thể xảy ra"tỷ lệ kèo bóng đá tối nay kiểm tra trong hệ thốngELOGIS vẫn được sử dụng rộng rãi; nó được ưa thích cho những tin nhắn đó cho nó Đơn giản chứng minh.

Lời khuyên về việc viết các thông báo tỷ lệ kèo bóng đá tối nay tốt có thể được tìm thấy trongPhần 47.3.

ghi chú

[1]

nghĩa là giá trị hiện tại khiEREPORTCuộc gọi đã đạt được; thay đổi củaerrnotỷ lệ kèo bóng đá tối nay báo cáo phụ trợ Các thói quen sẽ không ảnh hưởng đến nó. Điều đó sẽ không đúng nếu bạn đã viếtStrerror (errno)rõ ràng tỷ lệ kèo bóng đá tối nayerrmsg's Danh sách tham số; Theo đó, không làm như vậy.