Sdílet prostřednictvím


Přehled připojení k SQL Serveru z Power Apps

Existují různé způsoby připojení k datům v SQL Serveru v aplikaci pomocí vzorců Power Fx. K datům můžete přistupovat přímo nebo pomocí zobrazení nebo uložených procedur vytvářet, aktualizovat nebo odstraňovat data v aplikaci.

Předpoklady

Pokud chcete mít přímý přístup k datům, můžete pro data SQL Serveru vytvořit aplikaci Začít s daty. Tato metoda umožňuje získat základní funkční aplikaci, kterou můžete upravovat pomocí zobrazení a uložených procedur.

  1. Přihlaste se k Power Apps a přejděte na stránku Aplikace.

  2. Vyberte Nová aplikace>Začít s daty.

    Snímek obrazovky, který ukazuje, jak vytvořit aplikaci tak, že začnete s daty v nabídce Nová aplikace.

  3. Na stránce Začít s daty zvolte Připojit externí data.

  4. V části Zvolte datovou sadu, kterou chcete začít vyberte Od SQL.

    Pokud máte existující připojení k serveru SQL, načte se.

    Poznámka:

    Pokud ještě nemáte připojení k SQL Serveru, budete vyzváni k jeho vytvoření.

  5. Vyberte připojení SQL.

  6. Zadejte název serveru a název databáze a pak zvolte Připojit. Vyberte tabulku ze seznamu tabulek, který se zobrazí.

    Screenshot, který ukazuje stránku Vytvoření aplikace, kde můžete zvolit připojení k serveru SQL, včetně tabulky.

    Poznámka:

    V jednu chvíli se zobrazuje pouze jedno připojení. Chcete-li použít jiné připojení, vyberte nabídku přetečení ... na připojení SQL a poté najděte nové nebo vytvořte nové připojení SQL.

  7. Vyberte Vytvořit aplikaci.

Přístup k datům

Jakmile je vaše aplikace připojená k SQL Serveru, můžete přistupovat k datům: Přístup k datům v SQL Serveru.

Zobrazení výsledků

Chcete-li zobrazit výsledky dotazů SQL, viz: Zobrazení výsledků na SQL Serveru.

Mapování datového typu Power Apps

SQL Server Power Apps
bigint, decimal, int, moneynumeric, smallintsmallmoneytinyint, floatreal Number
char, nchar, varchar, nvarchar, , textntext Text
bit logický
date, datetime, datetime2, smalldatetime, , datetimeoffsettime DateTime
uniqueidentifier Průvodce

Poznámka:

Pokud se datový typ SQL Serveru nezobrazuje v předchozí tabulce, tento datový typ se nepodporuje. Mezi nepodporované datové typy patří následující příklady: binary(), varbinary(), image, cursor, rowversion, , hierarchyid, sql_variant xml, , Typy prostorové geometrie, Typy prostorové geografie a tabulka. Jako primární klíče se také nepodporují "tinyint" a "smallint".

Funkce a operace Power Apps delegovatelné na SQL Server

Power Apps může delegovat operace dotazů Power Fx (například Filter) na back-endový zdroj dat ke zpracování. Delegování umožňuje back-endové datové službě (například SQL Server) provádět filtrování, aby se do vašeho zařízení muselo přenést jenom několik záznamů.

Tato tabulka ukazuje, které operace se dají delegovat na SQL Server podle datového typu. Výrazy spojené s znakem And, Ora Not jsou delegovatelné.

Operace nebo funkce Number Text logický DateTime Průvodce
*, +, -, / Ano - - Ne -
<, <=, , >>= Ano Ne Ne Ano -
=, <> Ano Ano Ano Ano Ano
Average Ano - - - -
EndsWith - Ano [1] - - -
Filter Ano Ano Ano Ano [2] Ano
In (podřetětěžka) - Ano [3] - - -
IsBlank [4] Ne Ne Ne Ne Ne
Len (délka) - Ano [5] - - -
Lookup Ano Ano Ano Ano Ano
Max Ano - - Ne -
Min Ano - - Ne -
Search Ne Ano Ne Ne -
Sort Ano Ano Ano Ano -
SortByColumns Ano Ano Ano Ano -
StartsWith - Ano [6] - - -
Sum Ano - - - -
UpdateIf, RemoveIf [7] Ano Ano Ano Ano Ano

Poznámky

  1. Podporováno pro (EndsWith(\<column>, "string value")) , ale ne pro (EndsWith("string value", \<column>)). Pokud má sloupec char(10) hodnotu "hello", EndsWith(\<column>, "llo") vrátí hodnotu false podle návrhu. Sloupec char(10) má 10 znaků.

  2. Filtry přímých dat nefungují pro SQL Server s místní bránou dat. Můžete ale vytvořit počítaný sloupec, který funguje. Můžete například vytvořit:
    ALTER TABLE myTable ADD DateAsInt AS (YEAR([date]) * 10000 + MONTH([date]) * 100 + DAY([date]))
    Potom vyfiltrujte počítaný číselný sloupec.

  3. Podporováno pro ("string value" in \<column>), ale ne pro (\<column> in "string value").

  4. Výraz, například Filter('[dbo].[MyOrders]', !IsBlank(CustomerId)) nebude delegovat na server. Můžete však použít výraz, například Filter('[dbo].[MyOrders]', CustomerId <> Blank()), který deleguje na server a je sémanticky zavřený. Rozdíl je v tom, že druhý výraz nebude zacházet s prázdným řetězcem (""). I když výrazy nejsou ekvivalentní, může fungovat pro vaše účely. Tuto metodu nelze použít pro datový typ GUID.

  5. Power Apps tuto funkci deleguje Len , ale chování nemusí fungovat podle očekávání. V SQL Serveru má sloupec char(10) s hodnotou "hello" vždy délku 10. Power Apps ale tento řetězec považuje za dlouhý 5, což může způsobit nesrovnalosti a nejasnosti. Nepoužívejte char/nchar na SQL Serveru, ale použijte varchar/nvarchar místo toho.

  6. Podporováno pro (StartsWith(\<column>, "string value")), ale ne pro (StartsWith("string value", \<column>))

  7. UpdateIf a RemoveIf fungují místně, ale simulují delegování na limit 500/2000 záznamů. Po sobě přinesou záznamy nad rámec limitu záznamů, který není delegování 500/2000. Jsou shromažďovány záznamy, které splňují podmínku If. Obecně platí, že se shromažďuje maximálně 500/2000 záznamů zvlášť a pak se mění podle provedení. Pokud je však existující místní mezipaměť dat velká, může být aktualizováno více záznamů, protože funkce může mít přístup k více záznamům pro vyhodnocení.