Verbinding maken met SQL Server vanuit Power Apps

U kunt verbinding maken met SQL Server in Azure of een on-premises database.

Notitie

Nieuw gemaakte SQL-gegevensbronnen worden niet langer voorafgegaan door het voorvoegsel [dbo] zoals in eerdere versies van Power Apps.

Zie Veelvoorkomende problemen en oplossingen voor Power Apps voor meer informatie.

Automatisch een app genereren

Afhankelijk van welke Power Apps-interface je gebruikt, kun je de nieuwe look of de klassieke look raadplegen om een ​​app te bouwen.

  1. Meld u aan bij Power Apps.

  2. Selecteer op de pagina Start de optie galerie van één pagina of mobiel met drie schermen:

    • Kies een van de volgende opties om een galerie-app met één pagina en een responsieve indeling te maken:
      • Beginnen met gegevens > Externe gegevens selecteren > Vanuit SQL.
      • Beginnen met een pagina-ontwerp > Galerie verbonden met externe gegevens > Vanuit SQL.
    • Als u een mobiele app met drie schermen wilt maken, selecteert u Beginnen met een app-sjabloon > Vanuit SQL.
  3. Selecteer de uw SQL-verbinding en selecteer vervolgens een tabel. Als u een andere verbinding wilt kiezen, selecteert u het overloopmenu ... om uw verbinding te wijzigen of een nieuwe SQL-verbinding te maken.

    Notitie

    Er wordt slechts één verbinding tegelijk weergegeven.

  4. Klik op App maken als u gereed bent.

Opgeslagen procedures direct oproepen in Power Fx (preview)

U kunt opgeslagen procedures van SQL Server rechtstreeks aanroepen vanuit Power Fx door de preview-schakelaar voor opgeslagen SQL Server-procedures in te schakelen.

Notitie

Uitvoerparameters worden niet ondersteund.

  1. Ga naar Instellingen > Toekomstige functies > Preview.
  2. Zoek naar opgeslagen procedures.
  3. Stel de wisselknop in op Aan voor Opgeslagen procedures van SQL Server.
  4. Sla op en open de app opnieuw.

Schermopname waarin wordt weergegeven dat de schakelaar voor opgeslagen SQL Server-procedures is ingesteld op Aan.

Wanneer u een SQL Server-verbinding aan uw app toevoegt, kunt u nu tabellen en weergaven of opgeslagen procedures toevoegen. Deze functie werkt ook met beveiligde impliciete verbindingen.

Schermopname met lijsten met tabellen, weergaven en opgeslagen procedures die aan uw app kunnen worden toegevoegd.

Als u uw opgeslagen procedure niet onmiddellijk ziet, kunt u er sneller naar zoeken.

Zodra u een opgeslagen procedure selecteert, verschijnt er een onderliggend knooppunt en kunt u de opgeslagen procedure aanwijzen als Veilig te gebruiken voor galerieën en tabellen. Als u deze optie aanvinkt, kunt u uw opgeslagen procedure toewijzen als een eigenschap Items voor galerieën die u in uw app kunt gebruiken.

Schakel deze optie alleen in als:

  1. Er geen bijwerkingen zijn verbonden aan het herhaaldelijk aanroepen van deze procedure wanneer Power Apps het besturingselement vernieuwt. Bij gebruik met een eigenschap Items van een galerie of tabel, roept Power Apps de opgeslagen procedure aan wanneer het systeem bepaalt dat vernieuwing nodig is. U hebt geen controle over wanneer de opgeslagen procedure wordt aangeroepen.
  2. De hoeveelheid gegevens die u retourneert in de opgeslagen procedure is bescheiden. Voor actieaanroepen, zoals opgeslagen procedures, geldt geen limiet voor het aantal opgehaalde rijen. Ze worden niet automatisch gepagineerd in stappen van 100 records, zoals gegevensbronnen in tabelvorm, zoals tabellen of weergaven. Dus als de opgeslagen procedure te veel gegevens retourneert (vele duizenden records), kan dit uw app trager maken of laten crashen. Om prestatieredenen dient u minder dan 2000 records in te voeren.

Belangrijk

Het schema van de retourwaarden van de opgeslagen procedure moet statisch zijn. Dit betekent dat het niet van aanroep tot aanroep wordt gewijzigd. Als u een opgeslagen procedure aanroept en deze twee tabellen retourneert, moet deze bijvoorbeeld altijd twee tabellen retourneren. Als het schema van de resultaten dynamisch is, moet u het niet gebruiken met Power Apps. Als u bijvoorbeeld de opgeslagen procedure aanroept en deze soms één tabel en soms twee tabellen retourneert, werkt deze niet correct in Power Apps. Power Apps vereist een statisch schema voor deze aanroep.

Voorbeeld

Wanneer u een opgeslagen procedure toevoegt, ziet u mogelijk meer dan één gegevensbron in uw project.

Schermopname met SQL-gegevensbronnen.

Als u een ​​opgeslagen procedure in Power Apps wilt gebruiken, moet u eerst de naam van de opgeslagen procedure vooraf laten gaan door de naam van de bijbehorende connector en de naam van de opgeslagen procedure. 'Paruntimedb.dbonewlibrarybook' in het voorbeeld illustreert dit patroon. Wanneer Power Apps de opgeslagen procedure gebruikt, wordt de volledige naam samengevoegd. Inm dat geval wordt 'dbo.newlibrarybook' dus 'dbonewlibrarybook'.

Vergeet niet om waarden op de juiste manier om te zetten terwijl u ze zo nodig doorgeeft aan uw opgeslagen procedure, aangezien u leest vanuit een tekstwaarde in Power Apps. Als u een geheel getal in SQL bijwerkt, moet u bijvoorbeeld de tekst in het veld omzetten met 'Value()'.

Opgeslagen procedures rechtstreeks aanroepen.

U kunt toegang krijgen tot een opgeslagen procedure voor de eigenschap Items van een galerij nadat u deze veilig hebt verklaard voor de gebruikersinterface. Verwijs naar de gegevensbronnaam en de naam van de opgeslagen procedure gevolgd door 'ResultSets'. U kunt toegang krijgen tot meerdere resultaten door te verwijzen naar de geretourneerde set tabellen, zoals Tabel 1, Tabel 2, enz.

Uw toegang tot een opgeslagen procedure vanaf een gegevensbron met de naam 'Paruntimedb' met een opgeslagen procedure met de naam 'dbo.spo_show_all_library_books()' ziet er bijvoorbeeld als volgt uit.

Paruntimedb.dbospshowalllibrarybooks().ResultSets.Table1

Hierdoor wordt de galerij gevuld met records. Opgeslagen procedures zijn echter een toevoeging van actiegedrag aan het tabelmodel. Refresh() werkt alleen met gegevensbronnen in tabelvorm en kan niet worden gebruikt met opgeslagen procedures. Vervolgens moet u de galerij vernieuwen wanneer een record wordt gemaakt, bijgewerkt of verwijderd. Wanneer u Submit() gebruikt in een formulier voor een gegevensbron in tabelvorm, wordt in feite Refresh() in het geheim aangeroepen en wordt de galerij bijgewerkt.

Gebruik om deze beperking te omzeilen een variabele in de eigenschap OnVisible voor het scherm en stel de opgeslagen procedure in op de variabele.

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

Stel vervolgens de eigenschap 'Items' van de galerij in op de variabelenaam.

SP_Books

Nadat u vervolgens een record hebt gemaakt, bijgewerkt of verwijderd met een aanroep van de opgeslagen procedure, stelt u de variabele opnieuw in. Hiermee wordt de galerij bijgewerkt.

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

Bekende problemen

Met SQL-gegevensbronnen wordt niet langer het voorvoegsel [dbo] toegevoegd aan de naam van de gegevensbron

Het voorvoegsel [dbo] heeft geen enkel praktisch doel in Power Apps, aangezien de namen van gegevensbronnen automatisch ondubbelzinnig worden gemaakt. Bestaande gegevensbronnen worden niet beïnvloed door deze wijziging, maar nieuw toegevoegde SQL-gegevensbronnen bevatten het voorvoegsel niet.

Als u een groot aantal formules in een van uw apps moet bijwerken, kan het hulpprogramma voor het in- en uitpakken van bronbestanden in Power Apps worden gebruikt om een algemene zoek- en vervangopdracht uit te voeren.

Notitie

Vanaf versie 3.21054 zullen we defecte oude naamverwijzingen automatisch bijwerken naar de nieuwe gegevensbronnaam na het lezen van de gegevensbron.

Volgende stappen

Notitie

Laat ons uw taalvoorkeuren voor documentatie weten! Beantwoord een korte enquête. (houd er rekening mee dat deze in het Engels is)

De enquête duurt ongeveer zeven minuten. Er worden geen persoonlijke gegevens verzameld (privacyverklaring).