DBEXECUTE

Ghi chú

Trong môi trường đám mây, DBEXECUTE chỉ được hỗ trợ trong các ứng dụng Infor thương mại. Bạn không thể sử dụng DBEXECUTE trong các ứng dụng tùy chỉnh hoặc các ứng dụng mở rộng. Thay vào đó, sử dụng DBEXECUTEFIXED.

Bạn có thể đọc các giá trị từ cơ sở dữ liệu quan hệ, cập nhật các giá trị hiện có và chèn giá trị mới. DBEXECUTE hoạt động trực tiếp với cơ sở dữ liệu, không thông qua danh sách. Vì vậy, không giống với hàm Thông tin, bạn có thể chèn các hàng vào trong cơ sở dữ liệu. Các tham số của công thức DBEXECUTE là câu lệnh SQL.

Hàm DBEXECUTE hỗ trợ bốn tổ hợp khóa mà bạn có thể ghi 0, rỗng hoặc chuỗi trống vào cơ sở dữ liệu:

  • DEL: Ghi 0
  • CTRL+DEL: Ghi giá trị rỗng
  • BACKSPACE: Ghi chuỗi trống cho chuỗi trống ("")
  • CTRL+BACKSPACE: Ghi chuỗi trống cho chuỗi trống ("")

Cú pháp

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

  1. Tên cơ sở dữ liệu: Điều 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: Điều này được sử dụng để truy xuất dữ liệu từ cơ sở dữ liệu. Đây là lệnh SQL SELECT tiêu chuẩn. Khi nhập một giá trị mới được nhập giá trị hiện có. Nếu không có giá trị hiện có, câu lệnh INSERT được sử dụng. Để ghi lại cơ sở dữ liệu, truy vấn phải tham chiếu khóa chính. SQL SELECT có thể trả về nhiều giá trị từ một hàng nhưng DBEXECUTE bỏ qua tất cả nhưng trước 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 do câu lệnh yêu cầu.
  3. Báo cáo thu nhập: Điều này chỉ định cách nhập dữ liệu mới trong cơ sở dữ liệu. Đó là một lệnh SQL INSERT tiêu chuẩn. Bạn có thể sử dụng ? ký tự trong câu lệnh INSERT. Nó đại diện cho giá trị được nhập cuối bởi DBEXECUTE vào ô hiện tại.

Ví dụ

Trong ví dụ này, sản phẩm là khóa chính.

=DBEXECUTE("data_connection", "SELECT productid,FROM products WHERE
		productid=123","INSERT INTO products VALUES(’123’,?)")

Câu lệnh chọn được thực hiện mỗi khi hàm DBEXECUTE được xử lý. Ví dụ: nếu nó được hiển thị trong báo cáo, được dùng làm tham số trong bất kỳ công thức nào khác, được sử dụng trong một hành động, v.v. Nhưng câu lệnh INSERT chỉ được thực thi khi một giá trị được nhập vào một ô và giá trị đó không tồn tại trong cơ sở dữ liệu. Tính năng này có thể được sử dụng nếu bạn sử dụng hành động để thực thi DBEXECUTE và muốn chèn dữ liệu vào cơ sở dữ liệu hoặc thực hiện bất kỳ lệnh SQL nào khác.

Ví dụ

Trong ví dụ này, sản phẩm là khóa chính. ID sản phẩm được tham chiếu được giữ trong một biến báo cáo được gọi là rv_prod.

=DBEXECUTE("data_connection", "SELECT productid, FROM products WHERE
		productid="&Reportvariables.rv_prod.text,"INSERT INTO products VALUES(’123’,?)")

DBEXECUTE trong Hành động

Để thực hiện toàn bộ câu lệnh INSERT hoặc bất kỳ lệnh SQL nào khác trong công thức DBEXECUTE được thực hiện bởi một hành động, hãy sử dụng câu lệnh chèn theo câu lệnh chọn.

Ví dụ

=DBEXECUTE("data_connection", "INSERT INTO products VALUES (’123’,’[a
		value]’)","")