PostgreSQL: kèo bóng đá hôm | |||
---|---|---|---|
prev | UP | Chương 42. kèo bóng đá cúp c2 - Ngôn ngữ thủ tục TCL | NEXT |
Mã TCL trong hoặc được gọi từ chức năng PL/TCL có thể gây ra kèo bóng đá cúp c2, bằng cách thực hiện một số hoạt động không hợp lệ hoặc bằng cách tạo kèo bóng đá cúp c2 bằng cách sử dụngERROR
lệnh hoặc kèo bóng đá cúp c2'sELOG
lệnh. Những kèo bóng đá cúp c2 như vậy có thể bị bắt trong TCL bằng TCLCatch
lệnh. Nếu chúng không bị bắt nhưng được phép tuyên truyền đến cấp cao nhất thực thi chức năng PL/TCL, chúng sẽ biến thành kèo bóng đá cúp c2 cơ sở dữ liệu.
Ngược lại, các kèo bóng đá cúp c2 cơ sở dữ liệu xảy ra trong PL/TCL'sSPI_EXEC
, spi_prepare
vàSPI_EXECP
Các lệnh được báo cáo là kèo bóng đá cúp c2 TCL, vì vậy chúng có thể bắt được bởi TCL'sCatch
Lệnh. Một lần nữa, nếu chúng tuyên truyền lên cấp cao nhất mà không bị bắt, họ sẽ quay lại thành kèo bóng đá cúp c2 cơ sở dữ liệu.
TCL cung cấpErrorCodeBiến có thể đại diện cho thông tin bổ sung về một kèo bóng đá cúp c2 một biểu mẫu dễ dàng cho các chương trình TCL để giải thích. Nội dung ở định dạng danh sách TCL và từ đầu tiên xác định hệ thống con hoặc thư viện báo cáo lỗi; Ngoài ra, các nội dung được để lại cho hệ thống con hoặc thư viện riêng lẻ. Đối với các lỗi cơ sở dữ liệu được báo cáo bởi các lệnh PL/TCL, từ đầu tiên làPostgres, Từ thứ hai là số phiên bản Postgres và các từ bổ sung là các cặp tên/giá trị trường cung cấp thông tin chi tiết về kèo bóng đá cúp c2. Các trườngSQLSTATE, điều kiệnvàtin nhắnluôn được cung cấp (hai lần đầu tiên đại diện cho mã kèo bóng đá cúp c2 và tên điều kiện như trongPhụ lục A). Các trường có thể có mặt bao gồmchi tiết, Gợi ý, bối cảnh, lược đồ, Bảng, cột, Kiểu dữ liệu, ràng buộc, câu lệnh, con trỏ_poseition, FileName, Linenovàfuncname.
Một cách thuận tiện để làm việc với kèo bóng đá cúp c2'sErrorCodeThông tin là tải nó vào một mảng, để tên trường trở thành các chỉ số mảng. Mã để làm điều đó có thể trông giống như
Nếu [bắt spi_exec $ sql_command] if [lindex $ :: errorCode 0] == "postgres" etray set orrorArray $ :: ErrorCode Nếu $ errorArray (điều kiện) == "unefined_table" # đối phó với bàn bị thiếu khác # đối phó với một số loại kèo bóng đá cúp c2 SQL khác
(Các dấu chấm đôi chỉ định rõ ràng rằngErrorCodelà một biến toàn cầu.)