從 Power Apps 連線到 SQL Server
您可以連接到 Azure 或內部部署資料庫中 SQL Server。
自動產生應用程式
根據您使用的是哪一個 Power Apps 介面,參考 新外觀 或傳統外觀 來組建應用程式。
登入 Power Apps。
在首頁上,選取 單頁資源庫 或 三畫面行動裝置 選項:
- 若要建立具有回應式配置的單頁資源庫應用程式,請選擇下列其中一項:
- 從資料開始 > 選取來自 > SQL 的外部資料。
- 從頁面設計開始 > 連接來自 > SQL 外部資料的資源庫 。
- 若要建立一個三畫面的行動裝置應用程式,請選取以 > SQL 的應用程式範本開始 。
- 若要建立具有回應式配置的單頁資源庫應用程式,請選擇下列其中一項:
選取您的 SQL 連線,然後選取一個表格。 若要選取其他連接,請選取 ... 溢出功能表以切換連接或建立新的 SQL 連接。
注意
一次只會顯示一個連線。
完成時,選取建立應用程式。
直接在 Power Fx 中調用預存程序 (預覽版)
您可以透過打開 SQL Server 預存程序預覽開關,直接從 Power Fx 調用 SQL Server 預存程序。
注意
不支援輸出參數。
- 請移至設定 > 即將推出的功能 > 預覽。
- 搜索 預存程序。
- 將 SQL Server 預存程序的切換開關設為開。
- 儲存並重新開啟應用程式。
當您新增 SQL Server 連接到您的應用程式時,您現在可以新增表格和檢視表或預存程序。 此功能也適用於安全隱式連接。
如果您沒有立即看到您的預存程序,用搜尋的會比較快。
選取完預存程序後,將出現一個子節點,您可以將預存程序指定為可安全用於資源庫和表格。 如果選取此選項,則可以將預存程序指派為 Items 屬性,供表格在應用程式中的資源庫使用。
只在以下情況啟用此選項:
- 每當 Power Apps 重新整理控制項,按需求多次調用此程序,都沒有任何副作用時。 與資源庫或表格的 Items 屬性一起使用時,每當系統確定需要重新整理時,Power Apps 都會調用預存程序。 您無法控制何時調用預存程序。
- 您在預存程序中傳回的資料量為適中。 動作調用 (如預存程序)對檢索的列處沒有限制。 它們不會像表格或檢視表等表格資料來源那樣,為增加 100 條記錄自動分頁。 因此,如果預存程序傳回過多資料 (數千條記錄),則您的應用程式可能會變慢或閃退。 基於效能原因,您引入的記錄應少於 2,000 條。
重要
預存程序之傳回值的結構描述應該是靜態的。 這代表它不會隨調用而改變。 例如,如果您調用一個預存程序,且它傳回兩個表格,則它應始終傳回兩個表格。 如果結果的結構描述是動態的,則不應將其與 Power Apps 一起使用。 例如,如果您調用預存程序,而它有時會傳回一個表格,有時會傳回兩個表格,則它將無法在 Power Apps 中正常運作。 Power Apps 需要此調用的靜態結構描述。
範例
新增預存程序時,您可能會在專案中看到多個資料來源。
若要在 Power Apps 中使用預存程序,首先請在預存程序名稱前面加上與其和預存程序名稱相關之連接器的名稱。 範例中的「Paruntimedb.dbonewlibrarybook」即說明這種模式。 另請注意,當 Power Apps 引入預存程序時,它把全名連接成一串。 因此,「dbo.newlibrarybook」變成了「dbonewlibrarybook」。
請記住在把值傳到預存程序時,需視需求轉換值,因為您讀取的是 Power Apps 中的文字值。 例如,如果要在 SQL 中更新整數,則必須使用 'Value()' 轉換欄位中的文字。
使用資源庫
當您聲明資源庫的 Items 屬性對 UI 是安全的之 後,您就可以存取該預存程序。 引用資料來源名稱和預存程序的名稱後,會是「ResultSets」。 您可以透過引用傳回的表格集 (如表 1、表 2 等) 來存取多個結果。
例如,您使用名為「dbo.spo_show_all_library_books()」的預存程序從名為「Paruntimedb」的資料來源存取預存程序,將如下所示。
Paruntimedb.dbospshowalllibrarybooks().ResultSets.Table1
這會用記錄填入資源庫。 但是,預存程序是新增到表格模型的動作行為。 Refresh() 僅適用於表格資料來源,不能與預存程序一起使用。 然後,您需要在建立、更新或刪除記錄時重新整理資源庫。 當您在表格資料來源的表單上使用 Submit() 時,它會有效地在幕後調用 Refresh() 並更新資源庫。
若要繞過此限制,請在畫面的 OnVisible 屬性中使用變數,並將預存程序設定為該變數。
Set(SP_Books, Paruntimedb.dbospshowalllibrarybooks().ResultSets.Table1);
並將資源庫的「 Items」 屬性設定為變數名稱。
SP_Books
然後,在使用對預存程序的調用來建立、更新或刪除記錄後,再次設定變數。 這將更新資源庫。
Paruntimedb.dbonewlibrarybook({
book_name: DataCardValue3_2.Text,
author: DataCardValue1_2.Text,
...
});
Set(SP_Books, Paruntimedb.dbospshowalllibrarybooks().ResultSets.Table1);
已知問題
SQL 資料來源不再於資料來源名稱前加上 [dbo]
[dbo]
前綴在 Power Apps 中沒有任何實際用途,因為資料來源名稱會自動消除歧義。 此變更不會影響現有資料來源,但是任何新增的 SQL 資料來源都不再包含前綴。
如果您需要在某個應用程式中更新大量公式,Power Apps 資源檔案套件和解壓縮公用程式可用於進行全域搜尋和取代。
注意
從版本 3.21054 開始,我們將在讀取資料來源後,自動將損壞的舊名稱參考更新為新的資料來源名稱。
後續步驟
- 了解如何 顯示來自資料來源的資料。
- 了解如何 檢視詳細資料及建立或更新記錄。
- 請參閱您可以連線的其他類型的 資料來源。
- 了解資料表與記錄 與表格式資料來源。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應