如果您使用的是直接表訪問模式或檢視,則查詢結果將綁定到控件或表。 Power Fx 會自動將應用程式中的資料分頁到資源庫或資料表中。 但是,預存程序可以傳回查詢結果、傳回程式碼或來自 Out 參數的值。

要在應用程式中使用這些不同的結果類型,請使用以下模式。

不同控件的公式

檢視和儲存過程的典型公式:

Description 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,or Table3.

<datasourceName>.<StoredprocedureName>({<paramName1: value, paramName2: value, ... >}).ResultSets.Table1

非類型化結果

一些複雜的存儲過程返回無類型化的結果。 對於使用臨時表的存儲過程,此結果很常見。 Power Apps 無法輕易提前確定結果。 因此,傳回內容會標記為非類型化,您無法直接存取這些結果。 您必須先提供一個類型。

您可以使用以下資料存取範例模式存取資料。

資料存取範例

  • 將結果放入名為 MyUntypedObject 的變數中。

  • 從該變數中提取 Table1 並將其放入名為 table1 的變數中。

    此步驟並不是絕對必要的。 但是,將所有結果放在一個變數中,然後稍後提取您需要的部分是很有用的。

  • 迭代 table1 並提取命名值對中的 JSON 元素。

  • 將名稱與 JSON 負載中返回的名稱進行匹配。

  • 若要進行驗證,請開啟 Power Apps 監視器,並查看資料節點的主體部分以取得記錄。

    <MyUntypedObject>, // pull results into variable <datasourceName>.<StoredprocedureName>( { <paramName1>: "someString" } ).ResultSets table1, // put Table1 into table1 <MyUntypedObject>.Table1 TypedTable, ForAll( table1, // extract JSON from table1 BookID: Value(ThisRecord.BookID), BookName: Text(ThisRecord.BookName)
  •