Anslut till SQL Server från Power Apps

Du kan ansluta till SQL Server i antingen Azure eller en lokal databas.

Anteckning

Nyskapade SQL-datakällor prefixas inte längre med [dbo] som i tidigare versioner av Power Apps.

För mer information, se Vanliga problem och lösningar för Power Apps.

Generera en app automatiskt

Beroende på vilket Power Apps gränssnitt du använder kan du se det nya utseendet eller det klassiska utseendet när du bygger en app.

  1. Logga in på Power Apps.

  2. startsidan väljer du antingen ett galleri med en sida eller ett alternativ för mobil med tre skärmar:

    • Om du vill skapa en galleriapp på en sida med en responsiv layout kan du välja något av följande:
      • Börja med data > Välj externa data > Från SQL.
      • Börja med siddesign > Galleri som är kopplat till externa data > Från SQL.
    • Om du vill skapa en mobilapp med tre skärmar väljer du Start med en appmall > Från SQL.
  3. Välj din SQL-anslutning och välj sedan en tabell. Om du vill välja en annan anslutning markerar du ... spillmeny för att växla anslutning eller skapa en ny SQL-anslutning.

    Anteckning

    Endast en anslutning visas åt gången.

  4. Välj Skapa app när du är klar.

Anropa lagrade procedurer direkt i Power Fx (förhandsgranskning)

Du kan anropa SQL Server-lagrade procedurer direkt från Power Fx genom att aktivera förhandsgranskningsknappen för SQL Server.

Anteckning

Utdataparametrar stöds inte.

  1. Gå till Inställningar > Kommande funktioner > Förhandsversion.
  2. Sök efter lagrade procedurer.
  3. Ställ in värdet för växla till för SQL Server-lagrade procedurer.
  4. Spara och öppna programmet igen.

Skärmbild där SQL Server-lagrade procedurer växlas till På.

När du lägger till en SQL Server-anslutning till appen kan du nu lägga till tabeller och vyer eller lagrade procedurer. Den här funktionen fungerar även med säkra implicita kopplingar.

Skärmbild som visar listor över tabeller, vyer och lagrade procedurer som är tillgängliga för att läggas till i appen.

Om du inte ser den lagrade proceduren direkt går det snabbare att söka efter den.

När du har valt en lagrad procedur visas en underordnad nod och du kan ange den lagrade proceduren som Säker att använda för gallerier och tabeller. Om du markerar det här alternativet kan du tilldela den lagrade proceduren som egenskap för Items för gallerier för tabeller som ska användas i appen.

Aktivera endast det här alternativet om:

  1. Det finns inga biverkningar av att åberopa denna procedur på begäran flera gånger när Power Apps uppdaterar kontrollen. När de används med en egenskap Items för ett galleri eller en tabell anropar Power Apps den lagrade proceduren när systemet bestämmer en uppdatering. Du kan inte kontrollera när den lagrade proceduren anropas.
  2. Den mängd data som returneras i den lagrade proceduren är måttlig. Åtgärdssamtal, till exempel lagrade procedurer har ingen begränsning på antalet rader som hämtas. De visas inte automatiskt i 100 postökningar som till exempel tabeller eller vyer i tabellerna. Så om den lagrade proceduren returnerar för mycket data (många tusen poster) kan appen gå långsammare eller krascha. Av prestandaskäl bör du samla in färre än 2 000 poster.

Viktigt

Schemat för returvärdena för den lagrade proceduren bör vara statisk. Det betyder att den inte ändras från samtal till samtal. Om du till exempel anropar en lagrad procedur och returnerar två tabeller ska två tabeller alltid returneras. Om schemat för resultaten är dynamiskt ska du inte använda det med Power Apps. Om du till exempel anropar den lagrade proceduren och ibland returnerar en tabell och ibland returnerar två tabeller, fungerar den inte korrekt i Power Apps. Power Apps kräver ett statiskt schema för det här samtalet.

Exempel

När du lägger till en lagrad procedur kan du se mer än en datakälla i projektet.

Skärmbild som visar SQL-datakällor.

För att använda en lagrad procedur i Power Apps, börja med att prefixa den lagrade procedurens namn med namnet på det anslutningsprogram som är associerad med den och namnet på den lagrade proceduren. "Paruntimedb.dbonewlibrarybook" i exemplet illustrerar det här mönstret. Observera också att när Power Apps hämtar den lagrade proceduren sammanfogas det fullständiga namnet. Därför blir "dbo.newlibrarybook" "dbonewlibrarybook".

Kom ihåg att konvertera värden på lämpligt sätt när du skickar dem till den lagrade proceduren när det behövs eftersom du läser från ett textvärde i Power Apps. Om du till exempel uppdaterar ett heltal i SQL måste du konvertera texten i fältet med "Value()".

Anropa lagrade procedurer direkt.

Arbeta med ett galleri

Du kan få tillgång till en lagrad procedur för egenskapen Items i ett galleri när du har uppger att den är säker för användargränssnittet. Referera till datakälla namn och namnet på den lagrade proceduren följt av "ResultSets". Du kan få tillgång till flera resultat genom att referera till de tabeller som returneras, t.ex. tabell 1, tabell 2, etc.

Din åtkomst till en lagrad procedur utanför en datakälla med namnet "Paruntimedb" med den lagrade proceduren "dbo.spo_show_all_library_books()" ser ut så här.

Paruntimedb.dbospshowalllibrarybooks().ResultSets.Table1

Detta fyller galleriet med poster. Lagrade procedurer är emellertid ett tillägg av beteendet åtgärd till tabellmodellen. Refresh() fungerar endast med datakällor i tabellformat och kan inte användas med lagrade procedurer. Du måste uppdatera galleriet när en post skapas, uppdateras eller tas bort. När du använder en Submit() på ett formulär för en datakälla anropar den Refresh() under omslagen och uppdaterar galleriet.

Du kan komma runt den här begränsningen genom att använda en variabel i egenskapen OnVisible för skärmen och ställa in den lagrade proceduren på variabeln.

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

Och sedan ställ in egenskapen "'Items" för galleriet till variabelns namn.

SP_Books

När du sedan har skapat, uppdaterat eller tagit bort en post med ett samtal till den lagrade proceduren anger du variabeln igen. Detta uppdaterar galleriet.

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

Kända problem

SQL-datakällor lägger inte längre till ett [dbo]-prefix datakälla namnet

Prefixet [dbo] tjänar inget praktiskt syfte i Power Apps eftersom datakällans namn automatiskt blir entydiga. Befintliga datakällor påverkas inte av denna ändring, men nyligen tillagda SQL-datakällor innehåller inte prefixet.

Om du behöver uppdatera ett stort antal formler i en av dina appar kan du använda Power Apps verktyg för att packa och packa upp filer för att göra en global sökning och ersättning.

Anteckning

Från och med 3.21054 version kommer vi automatiskt att uppdatera brutna tidigare namnreferenser till datakälla namn efter att ha läst datakälla.

Gå vidare

Anteckning

Kan du berätta om dina inställningar för dokumentationsspråk? Svara i en kort undersökning. (observera att undersökningen är på engelska)

Undersökningen tar ungefär sju minuter. Inga personuppgifter samlas in (sekretesspolicy).