Adatok elérése a SQL Server kiszolgálón

Adatforrás felvétele

Közvetlen hozzáférés:

Ha az alkalmazás létrehozásakor a Start with data lehetőséget választja, a gyűjtemény Items tulajdonsága egy Power Fx-képletet használ, amely közvetlenül az adatbázistáblára mutat.

Ha például táblázata BOOKLENDING van, a következő képlet jelenik meg:

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

Nézetek és tárolt eljárások:

Gyakori professzionális adathozzáférési minta a nézetek használata, majd a közvetlen hozzáférés engedélyezése helyett tárolt eljárások létrehozása, frissítése és törlése. Ha nézeteket vagy tárolt eljárásokat szeretne használni, módosítsa a példaképletet. Hasonlóképpen, a rekord űrlapja nem használja a képlet beépített közvetlen megközelítését SubmitForm() .

Kiváltó okok:

Az egyik adatbázisminta az eseményindítók használata a táblákon. Ha egy tábla rendelkezik eseményindítóval, nem használhatja a közvetlen mintát Submit() létrehozásra, frissítésre és törlésre. Submit() ütközik az SQL-eseményindítók kezelésével és a Power Apps beépített viselkedésével, amelyek ugyanazt a kimeneti paramétert használják.

A lekérdezésekhez közvetlenül hozzáférhet a táblához, de egy tárolt eljárás kezeléséhez CreateUpdatevagy Deletemeghívásához.

Feljegyzés

Az SQL Server-összekötő, mint a relációs adatokkal dolgozó összes összekötő, feltételezi, hogy a táblák elsődleges kulccsal rendelkeznek. Az elsődleges kulcs kritikus fontosságú a frissítendő rekordok megkereséséhez. Ha egy SQL Server-tábla nem rendelkezik elsődleges kulccsal, az adatok írásvédettek. Ha hozzáférési és szerkesztési jogosultsággal rendelkezik a SQL Server táblához, fontolja meg egy automatikusan létrehozott kulcs hozzáadását.

Nézet használata

A nézet egy mentett lekérdezés, amely egyetlen adattáblaként jelenik meg.

Az adatforrás hozzáadásakor kijelölhető táblák listájában nézetek jelennek meg. A nézetek csak a lekérdezéseket támogatják, a frissítéseket nem. Az adatok frissítéséhez használjon tárolt eljárást.

Ha létrehoz egy táblázatot a Start with data beállítással, képernyőket és képleteket kap, amelyek rekordokat mutatnak egy katalógusban és űrlapon. A rekordok létrehozására, szerkesztésére és törlésére szolgáló képletek és funkciók láthatók. Ha azonban nézetet használ, csak a katalógus és az űrlap megjelenítési képernyője jelenik meg.

Előfordulhat, hogy automatikusan létrehozott képernyőket Start with data szeretne a nézetekhez.

Az automatikusan létrehozott beállítás használata:

  1. Válasszon Start with data egy egyszerű táblázattal.
  2. Törölje és cserélje le a táblázatot adatforrás.

Példa:

Ha például rendelkezik egy BOOKLENDINGVIEW táblával, és adatforrásként adja hozzá a Power Appshez, a képlet a következő egyszerű lehet:

BOOKLENDINGVIEW

Az egyéb létrehozási, frissítési és törlési képleteket is lecserélheti egy nézet adatforrására és a tárolt eljárások hívására.

Tárolt eljárások használata

Amikor SQL Server-kapcsolatot ad hozzá az alkalmazáshoz, tárolt eljárásokat adhat hozzá, és közvetlenül meghívhatja Power Fx őket.

Feljegyzés

Ez a funkció biztonságos, implicit kapcsolatokkal is működik.

Képernyőkép az alkalmazáshoz hozzáadható táblázatok, nézetek és tárolt eljárások listájáról.

A tárolt eljárás kiválasztása után megjelenik egy gyermekcsomópont, és a tárolt eljárást biztonságosként jelölheti ki gyűjteményekhez és táblákhoz.

A tárolt eljárások biztonságosak , ha nem hajtanak végre olyan műveletet, amely bizonyos esetekben nemkívánatos lehet. Ha például egy tárolt eljárás összegyűjti az összes fiókot egy adott városból, majd e-mailt küld nekik, előfordulhat, hogy nem mindig szeretné minden alkalommal elküldeni az e-maileket, amikor a tárolt eljárást meghívják. Ebben az esetben ne jelölje meg biztonságosként a tárolt eljárást.

A tárolt eljárást csak akkor kell biztonságosnak tekinteni, ha:

  1. Nincsenek mellékhatásai annak, hogy ezt az eljárást igény szerint hívják.

    Az eljárást többször is meghívhatja, vagy amikor a Power Apps frissíti a vezérlőt. Ha egy gyűjtemény vagy tábla Items tulajdonságával használja, a Power Apps meghívja a tárolt eljárást, amikor a rendszer megállapítja, hogy frissítésre van szükség. A tárolt eljárás meghívásának időpontja nem szabályozható.

  2. A tárolt eljárás szerény mennyiségű adatot ad vissza.

    A művelethívások, például a tárolt eljárások, nem korlátozzák a lekért sorok számát. Ezek nem jelennek meg automatikusan 100 rekordos lépésekben, például táblázatos adatforrásokban, például táblákban vagy nézetekben.

    Ha a tárolt eljárás túl sok adatot (több ezer rekordot) ad vissza, az alkalmazás lelassulhat vagy összeomlhat. Teljesítménybeli okokból kevesebb mint 2000 rekordot kell bevinni.

Ha biztonságosként ellenőriz egy tárolt eljárást, az alkalmazás gyűjteményeiben vagy tábláiban elemek tulajdonságként rendelheti hozzá.

Fontos

A tárolt eljárás visszatérési értékeinek sémájának statikusnak kell lennie, hogy az értékek ne változzanak hívásról hívásra. Ha például egy tárolt eljárás két táblát ad vissza, az mindig két táblát ad vissza. Konkrét vagy dinamikus eredményekkel is dolgozhat.

Az eredmények szerkezetének statikusnak is kell lennie. Ha például az eredmények sémája dinamikus, akkor az eredmények dinamikusak, és meg kell adnia egy adott típust a Power Appsben való használatukhoz. További információ: dinamikus eredmények.

SQL tárolt eljárás neve előtaggal ellátott névtér

Az SQL Server névtérneve, ahol az eljárást tárolja, hozzáadódik a tárolt eljárásnév elejéhez. Például a "DBO" SQL Server névtérben tárolt összes eljárás neve elején szerepel a "dbo".

Ha például hozzáad egy tárolt eljárást, több adatforrás is láthat a projektben.

SQL adatforrásokat bemutató képernyőfelvétel.

Tárolt eljárás hívása

Ha tárolt eljárást szeretne használni a Power Appsben, adja hozzá az összekötő nevét a tárolt eljárás neve elé, például Paruntimedb.dbonewlibrarybook.

Feljegyzés

Amikor a Power Apps behozza a tárolt eljárást, egyesíti a névteret és az eljárás nevét, hogy dbo.newlibrarybook az így létre váljon dbonewlibrarybook.

Az argumentumok rekordként Power Apps lesznek átadva elnevezett értékpárokkal:

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

Tipp.

Szükség esetén konvertálja az értékeket a tárolt eljárásba való továbbításkor, mivel a Power Appsben egy szöveges értékből olvas. Ha például egy egész számot frissít az SQL-ben, konvertálja a mező szövegét a használatával Value().

Íme egy példa arra, hogyan nézhetnek ki a tárolt eljárások, amikor hozzárendeli őket egy OnSelect tulajdonhoz.

Képernyőkép, amely bemutatja, hogyan hívhat meg közvetlenül tárolt eljárásokat kulcs/érték párok és pontjelölés használatával.

Változók és az összes tárolt eljárás

Miután biztonságosnak nyilvánította a felhasználói felületen, hozzáférhet egy katalógus Items tulajdonságának tárolt eljárásához. Adja meg a adatforrásnév és a tárolt eljárás nevét, majd ResultSets azt. Több találatot is elérhet, ha hivatkozik a visszaadott táblákra, például az 1. táblázatra, a 2. táblázatra stb.

Például egy tárolt eljárás a táblából Paruntimedb a következő néven dbo.spo_show_all_library_books() jelenik meg:

Paruntimedb.dbospshowalllibrarybooks().ResultSets.Table1

Ez a lekérdezés rekordokkal tölti fel a katalógust. A tárolt eljárások azonban műveleti viselkedések a táblázatos modellben. Refresh() csak táblázatos adatforrásokkal működik, és nem működik tárolt eljárásokkal. A rekord létrehozásakor, frissítésekor vagy törlésekor frissítse a katalógust.

Feljegyzés

Ha táblázatos Submit() adatforrás űrlapon használ, az hatékonyan hívja Refresh() a motorháztető alatt, és frissíti a katalógust.

Használjon egy változót a OnVisible képernyő tulajdonságában, és állítsa a tárolt eljárást a változóra.

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

Ezután beállíthatja a Items katalógus tulajdonságát a változó nevére.

SP_Books

Miután létrehozott, frissít vagy töröl egy rekordot a tárolt eljárás meghívásával, állítsa újra a változót a katalógus frissítéséhez.

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

Tárolt Power Automate eljárások hívása

Power Automate Az aszinkron műveleteket kezeli a legjobban. Tárolt eljárások meghívása egy üzleti folyamat hívássorozatának részeként.

A Power Automate meghívásához és a tárolt eljárások meghívásához hozzon létre bemeneti változókat a folyamat részeként.

A bemenetet bemutató Power Automate képernyő.

Ezután adja át a bemeneti változókat a tárolt eljárás hívásának.

Tárolt eljárás végrehajtása

Adja hozzá ezt a Power Automate folyamatot az alkalmazáshoz, és hívja meg. Adja át az opcionális argumentumokat rekordként: "{ ... }". Az alábbi példa az összes választható argumentumot tartalmazza.

Power Automate folyamat