SQL Server で結果を表示する
直接テーブル アクセス パターンまたはビューを使用している場合、クエリ結果はコントロールまたはテーブルにバインドされます。 Power Fx アプリ内のデータをギャラリーまたはテーブルにページングする機能を自動的に有効にします。 ただし、ストアド プロシージャは、クエリ結果、戻りコード、または Out
パラメータからの値を返すことができます。
アプリケーションでこれらのさまざまな結果タイプを使用するには、次のパターンを使用します。
さまざまなコントロールの計算式
ビューとストアド プロシージャの一般的な式:
コントロール | Property | 式 | プロパティ |
---|---|---|---|
ギャラリーまたはテーブル | アイテム | DataSource |
テーブルまたはビューのデータ ソースは、フィルター と StartsWith を使用してさらに絞り込むことができます。 生成された他のクエリ句は既存のクエリに追加されます。 |
Form | 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 モニターを開き、レコードのデータ ノードの本体セクションを確認します。
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)
}
)
);