DBEXECUTEXED

DBEXECUTE là một phương pháp thay thế cho DBEXECUTE hỗ trợ các tham số. Không giống DBEXECUTE, nó có thể được sử dụng trong cả môi trường đám mây và tại cơ sở và trong các ứng dụng tùy chỉnh hoặc mở rộng.

Câu lệnh SQL được coi là văn bản cố định và do đó, không thể tham chiếu trực tiếp các biến.

Nếu câu lệnh nằm trong ô không được bảo vệ, bạn có thể cập nhật giá trị được trả về nhưng tương phản với DBEXECUTE, bạn không thể thêm hàng mới.

Ghi chú

Tên tham số có phân biệt chữ hoa chữ thường.

Cú pháp

Công thức DBEXECUTEXED có các tham số này.

  1. Biệt danh: Công thức này xác định kết nối dữ liệu quan hệ được xác định trong d/EPM Administration.
  2. Chọn câu lệnh: Câu lệnh này được sử dụng để truy xuất dữ liệu từ cơ sở dữ liệu. Đây là lệnh SQL tiêu chuẩn. Để bật cơ sở dữ liệu cần được cập nhật, truy vấn phải bao gồm khóa chính. SQL SELECT có thể trả về nhiều giá trị từ một hàng nhưng DBEXECUTEFIXED sẽ bỏ qua tất cả trừ giá trị đầu tiên. Vì vậy, để trả về và ghi lại, một giá trị không phải là khóa chính, hãy đảm bảo rằng khóa chính không phải là giá trị đầu tiên mà câu lệnh yêu cầu. Để ghi lại, ô có chứa truy vấn phải ở trạng thái không được bảo vệ.
  3. Giá trị tham số. Bạn có thể sử dụng tham số một giá trị và nhiều giá trị. Trong câu lệnh SQL, tham chiếu tham số một giá trị với @[parameter_name]. Tham chiếu tham số nhiều giá trị với@@[parameter_name]. Giá trị trong tham số nhiều giá trị phải được phân tách bằng ký tự dấu sổ(|).
=DBEXECUTEFIXED("alias", "select_statement", {, "parameter"})

Tên tham số được chỉ định tự động thành p1,p2, v.v.

Ví dụ

Trong ví dụ này, công thức trả về tên mục mà tại đó ID có giá trị hiện được giữ trong biến báo cáorv_config. items.ID là khóa chính.

=DBEXECUTEFIXED("configdb", "SELECT items.name,items.ID FROM items WHERE Id=@p1",ReportVariables.rv_configs.Text)

items.id là khóa chính. Nếu công thức nằm trong ô không được bảo vệ và trả về một giá trị, bạn có thể cập nhật giá trị: trong ví dụ này là tên mục.

Ghi chú

Bởi vì toàn bộ câu lệnh SQL được coi là văn bản, không có yêu cầu ghép nối các giá trị chuỗi với ký tự &, như yêu cầu cần thiết trong các công thức DBEXECUTE này:

=DBEXECUTE("configdb", "SELECT items.name,items.ID FROM items WHERE Id="&ReportVariables.rv_configs.Text)
=DBEXECUTE("configdb", "SELECT items.ID,items.name FROM items WHERE name='"&ReportVariables.rv_name.Text&"'")

Cú pháp của ghép nối khác nhau bởi vì trong ví dụ đầu tiên giá trị được tham chiếu là số và giá trị trong văn bản thứ hai là văn bản.