如果使用直接表访问模式或视图,查询结果将绑定到控件或表。 Power Fx 自动允许你的应用页数据进入库或表。 但是,存储过程可以从 Out 参数返回查询结果、返回代码或值。
若要在应用中使用这些不同的结果类型,请遵循这些模式。
不同控件的公式
下面是视图和存储过程的典型公式:
| 控件 | 属性 | 公式 | Description |
|---|---|---|---|
| 库或表 | 项目 | DataSource |
可以使用 Filter 和 StartsWith 进一步优化表或查看数据源。 其他生成的查询子句将追加到现有查询。 |
| 表格 | DataSource | DataSource |
表或视图数据源。 |
| 窗体上的提交按钮 | OnSelect | DataSource.dboSPName({ args}); Refresh (‘DataSource’) |
此公式中的第一个 DataSource 是存储存储过程的存储过程数据源。 刷新公式中的 DataSource 是视图数据源。 |
| 窗体上的删除按钮 | OnSelect | SP DataSource.dboSPName({ args}); Refresh (‘View DataSource’) |
此公式中的第一个 DataSource 是存储存储过程的存储过程数据源。 刷新公式中的 DataSource 是视图数据源。 |
返回代码
使用此返回代码获取 return 语句的结果。
<datasourceName>.<StoredprocedureName>({<paramName1: value, paramName2: value, ... >}).ReturnCode
输出参数
使用 JSON 有效负载中显示的参数名称。
<datasourceName>.<StoredprocedureName>({<paramName1: value, paramName2: value, ... >}).OutputParameters.<parameterName>
结果集
可以按其名称(例如 Table1, Table2或 Table3)使用其他表。
<datasourceName>.<StoredprocedureName>({<paramName1: value, paramName2: value, ... >}).ResultSets.Table1
动态结果
一些复杂的存储过程返回动态结果。 对于使用临时表的存储过程,此结果很常见。 Power Apps 无法轻易提前确定结果。 因此,返回标记为 动态 ,并且无法直接访问这些结果。 首先,提供类型。
您可以使用以下数据访问示例模式访问数据。
数据访问示例
将结果放入名为
MyDynamicValue的变量中。从该变量拉取
Table1,将它放入名为table1的变量。小费
此步骤不是绝对必要。 不过,将所有结果放入变量中,然后拉出稍后所需的部分,这很有用。
循环访问
table1JSON 元素并将其提取为命名值对。将名称与 JSON 有效负载中返回的名称匹配。
若要验证,请打开 Power Apps 监视器并查看记录数据节点的正文部分。
Set(
<MyDynamicValue>, // pull results into variable
<datasourceName>.<StoredprocedureName>(
{ <paramName1>: "someString" }
).ResultSets
);
Set(
table1, // put Table1 into table1
<MyDynamicValue>.Table1
);
Set(
TypedTable,
ForAll(
table1, // extract JSON from table1
{
BookID: Value(ThisRecord.BookID),
BookName: Text(ThisRecord.BookName)
}
)
);