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

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

tỷ lệ kèo bóng đá tối nay, cảnh báo và thông báo nhật ký được tạo trong mã máy chủ nên đượ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 đủ 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 (từDebugđếnPanic11395_11571EREPORT11606_11811EREPORTlà mức độ nghiêm trọng. Văn bản tin nhắn chính và bất kỳ yếu tố tin nhắn tùy chọn nào được tạo bằng cách 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 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 bằng cách sử dụng macro được xác định trongSRC/bao gồm/Utils/errcodes.h. Theerrmsgcuộc gọi cung cấp văn bản tin nhắn chính.

Bạn cũng sẽ thường xuyên thấy kiểu cũ hơn này, với một bộ dấu ngoặc đơn xung quanh các cuộc gọi chức năng phụ trợ:

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

dấu ngoặc đơn được yêu cầu trướcPostgreSQLPhiên bản 12, nhưng bây giờ là tùy chọn.

Đâ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 các giá trị thời gian chạy vào một văn bản tin nhắn. Ngoài ra, một tùy chọnGợi ýTin nhắn được cung cấp. Các cuộc gọi chức năng phụ trợ có thể được viết theo bất kỳ thứ tự nào, nhưng thông thườngerrcodeerrmsgxuất hiện đầu tiên.

13847_13874ERRORhoặc cao hơn,EREPORTHủy bỏ thực thi truy vấn hiện tại và không trả lại cho người gọi. Nếu mức độ nghiêm trọng thấp hơnERROR, EREPORTtrả về bình thường.

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 điều kiện. Nếu thói quen này không được gọi, định danh tỷ lệ kèo bóng đá tối nay mặc định làerrCode_Internal_errorKhi mức độ nghiêm trọng của tỷ lệ kèo bóng đá tối nay là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. Mặc dù các mặc định này thường thuận tiện, luôn luôn nghĩ liệu chúng có phù hợp hay không trước khi bỏ qua15045_15056cuộ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ể là các giá trị thời gian chạy để chèn vào nó. Chèn được chỉ định bởiSprintf-Style Mã định dạng. Ngoài các mã định dạng tiêu chuẩn được chấp nhận bởiSprintf, Mã định dạng%mCó thể được sử dụng để chèn thông báo tỷ lệ kèo bóng đá tối nay được trả về bởiStrerrorĐối với giá trị hiện tại củaerrno. [16] %mKhông yêu cầu bất kỳ mục nhập tương ứng nào tỷ lệ kèo bóng đá tối nay danh sách tham số choerrmsg. Lưu ý rằng chuỗi tin nhắn sẽ được chạy quaGetTextĐể bản địa hóa có thể trước khi mã định dạng được xử lý.

  • errmsg_Internal (const char *msg, ...)giống nhưerrmsg, ngoại trừ chuỗi tin nhắn sẽ không được dịch cũng như không được bao gồm tỷ lệ kèo bóng đá tối nay từ điển thông điệp quốc tế hóa. Điều này nên được sử dụng chokhông thể xảy raHồiCác trường hợp có lẽ không đáng để sử dụng nỗ lực dịch thuật trên.

  • 16585_16672giống nhưerrmsg, nhưng với sự hỗ trợ cho các dạng số nhiều khác nhau của thông điệp.fmt_singularlà định dạng số ít tiếng Anh,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 được định dạng theo chuỗi định dạng đã chọn. Để biết thêm thông tin, xemPhần 55.2.2.

  • errdetail (const char *msg, ...)Cung cấp tùy chọn17480_17488Tin 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 để đưa vào thông điệp chính. Chuỗi thông tỷ lệ kèo bóng đá tối nay được xử lý theo cách tương tự như đối vớierrmsg.

  • errdetail_Internal (const char *msg, ...)giống nhưerrdetail17901_18183

  • 18260_18350giố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. Để biết thêm thông tin, xemPhần 55.2.2.

  • 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ả haierrdetail(hoặc một tỷ lệ kèo bóng đá tối nay những tương đương của nó ở trên) vàerrdetail_logđược sử dụng sau đó một chuỗi đi đến máy khách và chuỗi kia vào nhật ký. Điều này rất hữu ích cho các 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 để đưa vào báo cáo được gửi đến máy khách.

  • 19270_19364giống nhưerrdetail_log, 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. Để biết thêm thông tin, xemPhần 55.2.2.

  • errhint (const char *msg, ...)Cung cấp tùy chọnGợi ýxôngTin nhắn; Điều này sẽ được sử dụng khi đưa ra các đề xuất về cách khắc phục vấn đề, trái ngược với các chi tiết thực tế về những gì đã sai. Chuỗi thông tỷ lệ kèo bóng đá tối nay được xử lý theo cách tương tự như đối vớierrmsg.

  • 20147_20235giống nhưerrhint, 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. Để biết thêm thông tin, xemPhần 55.2.2.

  • errcontext (const char *msg, ...)Thông 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ề bối cảnh xảy ra tỷ lệ kèo bóng đá tối nay, chẳng hạn như vị trí hiện tại trong hàm PL. Chuỗi thông báo được xử lý theo cách tương tự như đối vớierrmsg. 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; Do đó, các chuỗi liên tiếp được cung cấp được kết hợp với việc tách các dòng mới.

  • errPocation (int cursorpos)21326_21508

  • errtable (quan hệ rel)Chỉ định một mối quan hệ có tên và tên lược đồ nên được đưa vào dưới dạng các trường phụ trong báo cáo tỷ lệ kèo bóng đá tối nay.

  • errTableCol (quan hệ rel, int attnum)Chỉ định một cột có tên, tên bảng và tên lược đồ nên được đưa vào làm các trường phụ trong báo cáo tỷ lệ kèo bóng đá tối nay.

  • errTableConstraint (quan hệ rel, const char *Conname)22103_22339PG_Constraintmục nhập. Cẩn thận vượt qua mối quan hệ heap cơ bản, không phải chính chỉ mục, nhưrel.

  • errdatatype (oid datatypeoid)Chỉ định một loại dữ liệu có tên và tên lược đồ nên được đưa vào dưới dạng các trường phụ trong báo cáo tỷ lệ kèo bóng đá tối nay.

  • 22799_22858Chỉ định một ràng buộc tên miền có tên, tên miền và tên lược đồ nên được đưa vào dưới dạng các trường phụ trong báo cáo tỷ lệ kèo bóng đá tối nay.

  • errcode_for_file_access ()là một hàm tiện lợi chọn một định danh lỗi SQLState thích hợp cho tỷ lệ kèo bóng đá tối nay cuộc gọi hệ thống liên quan đến truy cập tệp. 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 thường, đ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 ()23561_23690

  • errHidestMt (bool hid_stmt)Có thể được gọi để chỉ định việc đàn áptuyên bố:Phần của một 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 văn bản tin nhắn bao gồm câu lệnh hiện tại.

  • errHidecontext (bool hid_ctx)Có thể được gọi để chỉ định việc đàn ápBối cảnh:Phần của một tin nhắn trong nhật ký Postmaster. Điều này chỉ nên được sử dụng cho các thông báo gỡ tỷ lệ kèo bóng đá tối nay dài dòng trong đó việc bao gồm ngữ cảnh lặp đi lặp lại sẽ làm mờ nhật ký quá nhiều.

Lưu ý

nhiều nhất là một tỷ lệ kèo bóng đá tối nay các chức năngerrTable, errTableCol, errTableConstraint, errdatatypehoặcErrdomainConstraintnên được sử dụng tỷ lệ kèo bóng đá tối nay mộtEREPORTcuộc gọi. Các chức năng này tồn tại để cho phép các ứng dụng trích xuất tên của một đối tượng cơ sở dữ liệu được liên kết với điều kiện tỷ lệ kèo bóng đá tối nay mà không phải kiểm tra văn bản thông báo tỷ lệ kèo bóng đá tối nay có khả năng local hóa. Các chức năng này nên được sử dụng trong các báo cáo tỷ lệ kèo bóng đá tối nay mà có khả năng các ứng dụng muốn xử lý tỷ lệ kèo bóng đá tối nay tự động. Kể từPostgreSQL9.3, phạm vi bảo hiểm hoàn chỉnh chỉ tồn tại đối với các tỷ lệ kèo bóng đá tối nay lớp 23 (vi phạm ràng buộc toàn vẹn), nhưng điều này có thể được mở rộng trong tương lai.

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

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

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

25621_25679

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 được sử dụng cho các 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 điệp nào có khả năng được người dùng thông thường quan tâm nên đi quaEREPORT. Tuy nhiên, có đủ nội bộkhông thể xảy raKiểm tra tỷ lệ kèo bóng đá tối nay hệ thốngELOGvẫn được sử dụng rộng rãi; nó được ưa thích cho những tin nhắn đó vì sự đơn giản của nó.

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 54.3.



[16]nghĩa là giá trị hiện tại khiEREPORTđã đạt được cuộc gọi; thay đổi củaerrnotỷ lệ kèo bóng đá tối nay các thói quen báo cáo phụ trợ 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 nayerrmsg27075_27122

Gửi hiệu chỉnh

Nếu bạn thấy bất cứ điều gì tỷ lệ kèo bóng đá tối nay tài liệu không chính xác, không phù hợp Kinh nghiệm của bạn với tính năng cụ thể hoặc yêu cầu làm rõ thêm, Vui lòng sử dụngMẫu nàyĐể báo tỷ lệ kèo bóng đá tối nay vấn đề tài liệu.