DBEXECUTEFIXED
DBEXECUTEFIXED 可替代支持参数的 DBEXECUTE。与 DBEXECUTE 不同,它可在云和内部部署环境下使用,并在自定义或扩展应用程序中使用。
SQL 语句被视为固定文本,因此不能直接引用变量。
如果语句位于不受保护的单元格中,则可更新返回的值,但与 DBEXECUTE 相比,无法添加新行。
注意
参数名称区分大小写。
语法
DBEXECUTEFIXED 公式有这些参数。
- 别名:这指定了 d/EPM Administration 中定义的关系数据连接。
- 选择语句:这用于从数据库中检索数据。这是标准的 SQL SELECT 命令。若要更新数据库,则查询必须包含主键。SQL SELECT 可从一行返回多个值,但 DBEXECUTEFIX 会忽略除第一个以外的所有值。因此,若要返回并写回一个不是主键的值,请确保主键不是由语句请求的第一个值。对于写回,包含查询的单元格必须不受到保护。
- 参数值:可使用单值和多值参数。在 SQL 语句中,使用
@[parameter_name]
引用单值参数。使用@@[parameter_name]
引用多值参数。多值参数中的值必须以管道(|)
字符分隔。
=DBEXECUTEFIXED("alias", "select_statement", {, "parameter"})
参数名称自动指定为 p1、p2 等。
示例
在此示例中,公式返回 ID 当前在rv_configs 报告变量中包含的值的项目名称。item.ID
是主键。
=DBEXECUTEFIXED("configdb", "SELECT items.name,items.ID FROM items WHERE Id=@p1",ReportVariables.rv_configs.Text)
item.id
是主键。如果公式位于未受保护的单元格中并返回值,则可更新值:在此示例中,为项目名称。
注意
由于将整个 SQL 语句视为文本,因此无需将字符串值与 &
字符连接,因为这在这些 DBEXECUTE 公式中是必填项:
=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&"'")
连接的语法不同,例如在第一个示例中,引用的值是数字,而第二个是文本。