DBEXECUTE
注意
在内部部署环境中以及云环境的 Infor 商业应用程序中,仅支持 DBEXECUTE。在 Infor 云的自定义报告中仅支持 DBEXECUTEFIX。
可从关系数据库读取值,更新现有的值及插入新值。DBEXECUTE 直接使用数据库,而不是通过列表。因此,与 RWDB 函数不同,用户可以在数据库中插入行。DBEXECUTE 公式的参数是 SQL 语句。
DBEXECUTE 函数支持四个键组合,可在数据库中写入 0、空值或空字符串:
- DEL:写入 0
- CTRL+DEL:写入 Null
- BACKSPACE:写入空字符串 ("")
- CTRL+BACKSPACE:写入空字符串 ("")
语法
DBEXECUTE 公式有这些参数。
- 数据库名称:这指定了 d/EPM Administration 中定义的关系数据连接。
- 选择语句:这用于从数据库中检索数据。这是标准的 SQL SELECT 命令。输入新值时,更新现有值。如果没有现有值,则使用 INSERT 语句。若要写回到数据库,查询必须引用主键。SQL SELECT 可从一行返回多个值,但 DBEXECUTE 会忽略除第一个以外的所有值。因此,若要返回并写回一个不是主键的值,请确保主键不是由语句请求的第一个值。
- 插入语句:这指定了如何在数据库中输入新数据。这是标准的 SQL INSERT 命令。可以使用
?
INSERT 语句中的字符。这代表 DBEXECUTE 上一次在当前单元格中输入的值。
示例
在此示例中,productid
是主键。
=DBEXECUTE("data_connection", "SELECT productid,FROM products WHERE
productid=123","INSERT INTO products VALUES(’123’,?)")
每次处理 DBEXECUTE 函数时将执行选择语句。例如,如果在报告中显示、在任何其他公式中作为参数使用、用于操作中,等等。但是只有当在单元格中输入值,而且数据库中没有该值时,才会执行 INSERT 语句。如果使用一个操作执行 DBEXECUTE,而且希望在数据库中插入数据或执行任何其他 SQL 命令,则可使用该功能。
示例
在此示例中,productid
是主键。引用的产品 ID 存储在名为 rv_prod 的报告变量中。
=DBEXECUTE("data_connection", "SELECT productid, FROM products WHERE
productid="&Reportvariables.rv_prod.text,"INSERT INTO products VALUES(’123’,?)")
以操作执行 DBEXECUTE
若要在由操作执行的 DBEXECUTE 公式中执行 INSERT 语句或任何其他 SQL 命令,则使用 insert 语句代替选择语句。
示例
=DBEXECUTE("data_connection", "INSERT INTO products VALUES (’123’,’[a
value]’)","")