Sdílet prostřednictvím


Přístup k datům na SQL Serveru

Přidat zdroj dat

Přímý přístup:

Pokud při vytváření aplikace vyberete možnost Začít s daty , vlastnost Items v galerii používá vzorec Power Fx s názvem zdroje dat, který odkazuje přímo na tabulku databáze.

Pokud máte BOOKLENDING například tabulku, zobrazí se tento vzorec:

Search([@'[dbo].[BOOKLENDING]'], SearchInput1.Text, author, author,book_name,category)

Zobrazení a uložené procedury:

Běžným vzorem přístupu k profesionálním datům je použití zobrazení a následných uložených procedur pro vytvoření, aktualizaci a odstranění místo povolení přímého přístupu. Pokud chcete použít zobrazení nebo uložené procedury, změňte ukázkový vzorec. Podobně formulář pro záznam nepoužívá integrovaný přímý přístup SubmitForm() vzorce.

Triggery:

Jedním z databázových vzorů je použití triggerů u tabulek. Pokud má tabulka aktivační událost, nemůžete použít přímý vzor Submit() pro vytváření, aktualizaci a odstraňování. Submit() konflikty s zpracováním triggerů SQL a integrovaným chováním Power Apps, které používají stejný výstupní parametr.

K tabulce můžete přistupovat přímo pro dotazy, ale pro zpracování CreateUpdate, nebo Delete, volání uložené procedury.

Poznámka:

Konektor SQL Serveru, podobně jako všechny konektory, které pracují s relačními daty, předpokládá, že tabulky mají primární klíč. Primární klíč je zásadní pro vyhledání konkrétních záznamů, které se mají aktualizovat. Pokud tabulka SQL Serveru nemá primární klíč, data jsou jen pro čtení. Pokud máte přístupová práva k tabulce SQL Server a práva k jejím úpravám, zvažte přidání automaticky generovaného klíče.

Použití zobrazení

Zobrazení je uložený dotaz, který se zobrazuje jako jedna tabulka dat.

Zobrazení se zobrazí v seznamu tabulek, které můžete vybrat, když přidáte zdroj dat. Zobrazení podporují pouze dotazy, nikoli aktualizace. Pokud chcete aktualizovat data, použijte uloženou proceduru.

Pokud vytvoříte tabulku s Start with data možností, získáte obrazovky a vzorce, které zobrazují záznamy v galerii a formuláři. Zobrazí se vzorce a funkce pro vytváření, úpravy a odstraňování záznamů. Pokud ale používáte zobrazení, zobrazí se jenom obrazovka pro galerii a formulář.

Pro zobrazení můžete chtít automaticky vygenerované Start with data obrazovky.

Pokud chcete použít tuto automaticky vygenerovanou možnost:

  1. Zvolte Start with data se základní tabulkou.
  2. Odstraňte a nahraďte zdroj dat tabulky.

Příklad:

Pokud máte BOOKLENDINGVIEW například tabulku a přidáte ji jako zdroj dat pro Power Apps, vzorec může být jednoduchý jako:

BOOKLENDINGVIEW

Můžete také nahradit další vzorce pro vytváření, aktualizaci a odstraňování pomocí zdroje dat zobrazení a volání uložených procedur.

Použití uložených procedur

Když do aplikace přidáte připojení SQL Serveru, můžete přidat uložené procedury a volat je přímo v Power Fx.

Poznámka:

Tato funkce funguje také se zabezpečenými implicitními připojeními.

Snímek obrazovky, který ukazuje seznamy tabulek, pohledů a uložených procedur, které lze přidat do vaší aplikace.

Po výběru uložené procedury se zobrazí podřízený uzel a můžete určit uloženou proceduru jako bezpečnou pro galerie a tabulky.

Uložená procedura je bezpečná , pokud neprovádí žádnou akci, která by mohla být v určitých scénářích nežádoucí. Pokud například uložená procedura shromažďuje všechny účty z daného města a pak jim pošle e-mail, nemusí být vždy nutné, aby se e-maily odesílaly pokaždé, když se volá uložená procedura. V takovém případě neuznajte uloženou proceduru jako bezpečnou.

Zkontrolujte uloženou proceduru jako bezpečnou pouze v případě, že:

  1. Volání tohoto postupu na požádání nemá žádné vedlejší účinky.

    Postup můžete volat vícekrát nebo kdykoli Power Apps aktualizuje ovládací prvek. Když ji použijete s vlastností Items galerie nebo tabulky, Power Apps volá uloženou proceduru pokaždé, když systém zjistí, že je potřeba provést aktualizaci. Nemůžete ovládat, kdy je volána uložená procedura.

  2. Uložená procedura vrací skromné množství dat.

    Volání akcí, jako jsou uložené procedury, nemají omezení počtu načtených řádků. Nejsou automaticky stránkovány v přírůstcích po 100 záznamech, jako jsou tabulkové zdroje dat, jako jsou tabulky nebo zobrazení.

    Pokud uložená procedura vrací příliš mnoho dat (mnoho tisíc záznamů), může se aplikace zpomalit nebo selhává. Z důvodů výkonu přineste méně než 2 000 záznamů.

Pokud zaškrtnete uloženou proceduru jako bezpečnou, můžete ji přiřadit jako vlastnost Items v galeriích nebo tabulkách v aplikaci.

Důležité

Schéma návratových hodnot uložené procedury by mělo být statické, aby se hodnoty nezměnily z volání na volání. Pokud například uložená procedura vrátí dvě tabulky, vrátí vždy dvě tabulky. Můžete pracovat s konkrétními nebo dynamickými výsledky.

Struktura výsledků musí být také statická. Pokud je například schéma výsledků dynamické, výsledky jsou dynamické a musíte zadat konkrétní typ pro jejich použití v Power Apps. Další informace najdete v dynamických výsledcích.

SQL obor názvů s předponou názvu uložené procedury

Název oboru názvů SYSTÉMU SQL Server, do kterého uložíte proceduru, se přidá na začátek názvu uložené procedury. Například všechny uložené procedury v oboru názvů 'DBO' SQL Server mají 'dbo' na začátku názvu.

Když například přidáte uloženou proceduru, může se v projektu zobrazit více než jeden zdroj dat.

Snímek obrazovky, který ukazuje zdroje dat SQL.

Volání uložené procedury

Pokud chcete použít uloženou proceduru v Power Apps, přidejte název konektoru před název uložené procedury, například Paruntimedb.dbonewlibrarybook.

Poznámka:

Když Power Apps přenese uloženou proceduru, kombinuje obor názvů a název procedury tak, aby dbo.newlibrarybook se stala dbonewlibrarybook.

Argumenty Power Apps se předávají jako záznam s pojmenovanými páry hodnot:

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

Tip

Pokud je budete potřebovat, převeďte je do uložené procedury, protože čtete textovou hodnotu v Power Apps. Pokud například aktualizujete celé číslo v SQL, převeďte text v poli pomocí Value().

Tady je příklad toho, jak by uložené procedury mohly vypadat při jejich přiřazování k vlastnosti OnSelect.

Screenshot, který ukazuje, jak volat uložené procedury přímo pomocí párů klíč/hodnota a tečkového zápisu.

Proměnné a všechny uložené procedury

Po deklarování bezpečného uživatelského rozhraní získáte přístup k uložené pro vlastnost Items galerie. Odkazujte na název zdroje dat a název uložené procedury, za kterou následuje ResultSets. Přístup k více výsledkům pomocí odkazu na sadu vrácených tabulek, jako je tabulka 1, tabulka 2 atd.

Například uložená procedura z tabulky Paruntimedb s názvem dbo.spo_show_all_library_books() vypadá takto:

Paruntimedb.dbospshowalllibrarybooks().ResultSets.Table1

Tento dotaz naplní galerii záznamy. Uložené procedury jsou však akce v tabelárním modelu. Refresh() funguje jenom s tabulkovými zdroji dat a nefunguje s uloženými procedurami. Aktualizujte galerii při vytvoření, aktualizaci nebo odstranění záznamu.

Poznámka:

Použijete-li Submit() ve formuláři pro tabulkový zdroj dat, efektivně volá Refresh() pod pokličkou a aktualizuje galerii.

Použijte proměnnou ve OnVisible vlastnosti pro obrazovku a nastavte uloženou proceduru na proměnnou.

Set(SP_Books, Paruntimedb.dbospshowalllibrarybooks().ResultSets.Table1);

Pak můžete nastavit vlastnost Items galerie na název proměnné.

SP_Books

Po vytvoření, aktualizaci nebo odstranění záznamu s voláním uložené procedury nastavte proměnnou znovu tak, aby se galerie aktualizovala.

Paruntimedb.dbonewlibrarybook({   
  book_name: DataCardValue3_2.Text, 
  author: DataCardValue1_2.Text,
    ...
});
Set(SP_Books, Paruntimedb.dbospshowalllibrarybooks().ResultSets.Table1);

Použití Power Automate k volání uložených procedur

Power Automate nejlépe zvládá asynchronní akce. Volání uložených procedur jako součást řady volání v obchodním procesu

Pokud chcete volat Power Automate a pak volat uložené procedury, vytvořte vstupní proměnné jako součást toku.

Screenshot, který zobrazuje vstup Power Automate.

Pak předejte vstupní proměnné do volání uložené procedury.

Spustit uloženou proceduru

Přidejte tento tok Power Automate do své aplikace a zavolejte ho. Předat volitelné argumenty jako záznam {... }”. Následující příklad obsahuje všechny volitelné argumenty.

Tok Power Automate