在 SQL Server 中查看结果
如果您使用的是直接表访问模式或视图,则查询结果将绑定到控件或表。 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 无法轻易提前确定结果。 因此,返回将被标记为无类型,您无法直接访问这些结果。 您必须先提供类型。
您可以使用以下数据访问示例模式访问数据。
数据访问示例
将结果放入名为
MyUntypedObject
的变量中。从该变量拉取
Table1
,将它放入名为table1
的变量。小费
此步骤不是绝对必要。 但是,将所有结果放在一个变量中,然后稍后提取您需要的部分是很有用的。
遍历
table1
,提取命名值对中的 JSON 元素。将名称与 JSON 负载中返回的名称进行匹配。
要进行验证,请打开监视器 Power Apps 并查看记录数据节点的 body 部分。
Set(
<MyUntypedObject>, // pull results into variable
<datasourceName>.<StoredprocedureName>(
{ <paramName1>: "someString" }
).ResultSets
);
Set(
table1, // put Table1 into table1
<MyUntypedObject>.Table1
);
Set(
TypedTable,
ForAll(
table1, // extract JSON from table1
{
BookID: Value(ThisRecord.BookID),
BookName: Text(ThisRecord.BookName)
}
)
);