PostgreSQL: kèo bóng đá hôm nay và ngày | |||
---|---|---|---|
prev | UP | Chương 52. Các quy ước mã hóa PostgreSQL | NEXT |
kèo bóng đá việt nam, cảnh báo và tin nhắn nhật ký được tạo trong mã máy chủ phải được tạo bằng cách sử dụngEREPORT
hoặ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ố cần thiết cho mỗi thông điệp: mức độ nghiêm trọng (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, trong số đó phổ biến nhất là mã định danh kèo bóng đá việt nam tuân theo các quy ước SQLState của SQL Spec.EREPORT
Bản thân nó chỉ là một hàm shell, tồn tại chủ yếu để thuận tiện cho cú pháp để tạo ra thông báo trông giống như một cuộc gọi chức năng kèo bóng đá việt nam mã nguồn C. Tham số duy nhất được chấp nhận trực tiếp bởiEREPORT
là 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
, kèo bóng đá việt namEREPORT
cuộc gọi.
Một cuộc gọi điển hình đếnEREPORT
Có thể trông như thế này:
EREPORT (kèo bóng đá việt nam, (errcode (errcode_division_by_zero), errmsg ("Division by Zero")));
Điều này chỉ định mức độ nghiêm trọng của kèo bóng đá việt namERROR(một kèo bóng đá việt nam chạy bộ). Theerrcode
cuộc gọi Chỉ định mã kèo bóng đá việt nam SQLSTATE bằng cách sử dụng macro được xác định trongsrc/bao gồm/utils/errcodes.h. Theerrmsg
cuộc gọi cung cấp văn bản tin nhắn chính. Lưu ý tập hợp thêm các dấu ngoặc đơn xung quanh các cuộc gọi chức năng phụ trợ - chúng rất khó chịu nhưng cần thiết về mặt cú pháp.
Đây là một ví dụ phức tạp hơn:
EREPORT (kèo bóng đá việt nam, (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ọn"Gợi ý"Tin nhắn được cung cấp.
Nếu mức độ nghiêm trọng làERRORhoặc cao hơn,EREPORT
hủy bỏ việc thực hiện chức năng do người dùng xác định và không trả lại cho người gọi. Nếu mức độ nghiêm trọng thấp hơnERROR, EREPORT
Trả về bình thường.
Các thói quen phụ trợ có sẵn choEREPORT
là:
errcode (sqlerrcode)
Chỉ định mã định danh kèo bóng đá việt nam SQLSTATE cho điều kiện. Nếu thói quen này không được gọi, định danh kèo bóng đá việt nam mặc định làerrCode_Internal_errorKhi mức độ nghiêm trọng của kèo bóng đá việt nam làERRORhoặc cao hơn,errcode_warningKhi mức kèo bóng đá việt nam làCảnh kèo bóng đá việt nam, nếu không (choThông kèo bóng đá việt nam14069_14083errCode_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ỏ quaerrcode ()
cuộc gọi.
errmsg (const char *msg, ...)
Chỉ định văn bản thông báo kèo bóng đá việt nam chính và có thể 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 kèo bóng đá việt nam được trả về bởiStrerror
Đối với giá trị hiện tại củaerrno. [1] %MKhông yêu cầu bất kỳ mục nhập tương ứng nào kèo bóng đá việt nam 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 kèo bóng đá việt nam từ điển thông điệp quốc tế hóa. Đ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 để sử dụng nỗ lực dịch thuật trên.
15630_15717
giố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,n16010_16187Phần 53.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 để đưa vào thông điệp chính. Chuỗi thông kèo bóng đá việt nam được xử lý theo cách tương tự như đối vớierrmsg
.
errdetail_Internal (const char *msg, ...)
giống nhưerrdetail
16749_17031
17071_17161
giố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 53.2.2.
errdetail_log (const char *msg, ...)
giống nhưerrdetail
Ngoại trừ chuỗi này chỉ đi đến nhật ký máy chủ, không bao giờ với máy khách. Nếu cả haierrdetail
(hoặc một kèo bóng đá việt nam những tương đương của nó ở trên) vàerrdetail_log
17706_17901
17941_18035
giố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 53.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 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 kèo bóng đá việt nam được xử lý theo cách tương tự như đối vớierrmsg
.
errcontext (const char *msg, ...)
thường không được gọi trực tiếp từEREPORT
Trang web tin nhắn; đúng hơn là nó được sử dụng kèo bóng đá việt namERROR_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 kèo bóng đá việt nam, 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ỗiEREPORT
cuộ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)
Chỉ định vị trí văn bản của một kèo bóng đá việt nam trong chuỗi truy vấn. Hiện tại nó chỉ hữu ích cho các kèo bóng đá việt nam được phát hiện trong các giai đoạn phân tích từ vựng và cú pháp của xử lý truy vấn.
errtable (quan hệ rel)
19607_19717
errtableCol (quan hệ rel, int attnum)
Chỉ định một cột có tên, tên bảng và tên lược đồ phải được đưa vào làm các trường phụ trợ trong báo cáo kèo bóng đá việt nam.
errTableConstraint (quan hệ rel, const char *Conname)
Chỉ định một ràng buộc bảng 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 kèo bóng đá việt nam. Các chỉ mục nên được coi là ràng buộc cho mục đích này, cho dù chúng có liên quan hay khôngPG_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)
20485_20596
20636_20695
Chỉ định một ràng buộc miền có tên, tên miền và tên lược đồ nên được đưa vào làm các trường phụ trong báo cáo kèo bóng đá việt nam.
errcode_for_file_access ()
là một hàm tiện lợi chọn một định danh kèo bóng đá việt nam SQLState thích hợp cho kèo bóng đá việt nam trong 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ã kèo bóng đá việt nam 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 kèo bóng đá việt nam chính.
errcode_for_socket_access ()
21316_21445
errHidestMt (bool hid_stmt)
có thể được gọi để chỉ định việc đàn ápcâu lệnh:Phần của một tin nhắn kèo bóng đá việt nam nhật ký bưu điện. 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ý bưu điện. Điều này chỉ nên được sử dụng cho các thông báo gỡ kèo bóng đá việt nam 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 kèo bóng đá việt nam các chức năng
errtable
,errTableCol
,errTableConstraint
,errdatatype
hoặcErrdomainConstraint
nên được sử dụng kèo bóng đá việt nam mộtEREPORT
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 kèo bóng đá việt nam mà không phải kiểm tra văn bản thông báo kèo bóng đá việt nam 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 kèo bóng đá việt nam mà có khả năng các ứng dụng muốn xử lý kèo bóng đá việt nam tự động. Kể từPostgreSQL22835_22983
Có một hàm cũELOG
Điều đó vẫn được sử dụng rất nhiều. MỘTELOG
CALL:
ELOG (cấp, "Chuỗi định dạng", ...);
hoàn toàn tương đương với:
23278_23336
23344_23468ELOG
Chỉ nên được sử dụng cho các kèo bóng đá việt nam nội bộ và ghi nhật ký gỡ kèo bóng đá việt nam 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 ra"Kiểm tra kèo bóng đá việt nam trong hệ thốngELOG
vẫ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 kèo bóng đá việt nam tốt có thể được tìm thấy trongPhần 52.3.
[1] |
nghĩa là giá trị hiện tại khi |