Delen via


Verbinding maken met SQL Server vanuit Power Apps-overzicht

Er zijn verschillende manieren om verbinding te maken met gegevens in SQL Server in uw app, met behulp van Power Fx-formules. U kunt rechtstreeks toegang krijgen tot gegevens of een weergave of opgeslagen procedures gebruiken om gegevens in uw app te maken, bij te werken of te verwijderen.

Voorwaarden

Om rechtstreeks toegang te krijgen tot gegevens, kunt u een Beginnen met gegevens-app voor uw SQL Server-gegevens maken. Met deze methode krijgt u een eenvoudige, werkende app die u kunt aanpassen met weergaven en opgeslagen procedures.

  1. Meld u aan bij Power Apps en ga naar de pagina Apps.

  2. Selecteer Nieuwe app>Beginnen met gegevens.

    Schermafbeelding die laat zien hoe u een app maakt door te beginnen met gegevens onder het menu Nieuwe app.

  3. Kies Externe gegevens verbinden op de pagina Beginnen met gegevens.

  4. Selecteer Uit SQL onder Kies een gegevensset om te starten.

    Als u een bestaande SQL-serververbinding hebt, wordt deze geladen.

    Notitie

    Als u nog geen SQL Server-verbinding hebt gemaakt, wordt u gevraagd dit te doen.

  5. Selecteer uw SQL-verbinding.

  6. Voer de naam van uw server en database in en kies vervolgens Verbinden. Kies een tabel uit de lijst met tabellen die verschijnt.

    Schermafbeelding van de pagina Een app maken, waar u een SQL-serververbinding kunt kiezen, inclusief een tabel.

    Notitie

    Er wordt slechts één verbinding tegelijk weergegeven. Als u een andere verbinding wilt gebruiken, selecteert u het uitklapmenu ... in uw SQL-verbinding en zoekt u vervolgens een nieuwe verbinding of maakt u een nieuwe SQL-verbinding.

  7. Selecteer App maken.

Krijg toegang tot gegevens

Zodra uw app is verbonden met de SQL-server, hebt u toegang tot gegevens: toegang tot gegevens in de SQL-server.

Resultaten weergeven

Om de resultaten van uw SQL-query's te bekijken, zie: Resultaten bekijken in SQL Server.

Toewijzingen van Power Apps-gegevenstypen

SQL Server Power Apps
bigint, , decimal, intmoney, , numeric, smallint, , smallmoneytinyintfloatreal Number
char, ncharvarchar, nvarchar, textntext Tekst
bit Booleaan
date, datetimedatetime2, smalldatetime, datetimeoffsettime DateTime
uniqueidentifier Guid

Notitie

Als een SQL Server-gegevenstype niet wordt weergegeven in de vorige tabel, wordt dat gegevenstype niet ondersteund. Niet-ondersteunde gegevenstypen omvatten de volgende voorbeelden: binary(), varbinary(), image, cursor, , rowversion, sql_variant xmlhierarchyidRuimtelijke geometrietypen, Ruimtelijke geografietypen en tabel. Ook worden 'tinyint' en 'smallint' niet ondersteund als primaire sleutels.

Power Apps-functies en -bewerkingen delegeerbaar voor SQL Server

Power Apps kan Power Fx-querybewerkingen (bijvoorbeeld Filteren) delegeren aan de back-endgegevensbron voor verwerking. Met delegering kan de back-endgegevensservice (bijvoorbeeld SQL Server) het filterwerk uitvoeren, zodat slechts een paar records naar uw apparaat moeten worden overgebracht.

In deze tabel ziet u welke bewerkingen delegeerbaar zijn voor SQL Server op gegevenstype. Expressies die zijn samengevoegd met And, Oren Not zijn delegeerbaar.

Bewerking of functie Number Tekst Booleaan DateTime Guid
*, +, -, / Yes - - Nee. -
<,<=,>,>= Yes Nee. Nee. Yes -
=, <> Yes Yes Yes Yes Yes
Average Yes - - - -
EndsWith - Ja [1] - - -
Filter Yes Yes Yes Ja [2] Yes
In (subtekenreeks) - Ja [3] - - -
IsBlank [4] Nee. Nee. Nee. Nee. Nee.
Len (lengte) - Ja [5] - - -
Lookup Yes Yes Yes Yes Yes
Max Yes - - Nee. -
Min Yes - - Nee. -
Search Nee. Yes Nee. Nee. -
Sort Yes Yes Yes Yes -
SortByColumns Yes Yes Yes Yes -
StartsWith - Ja [6] - - -
Sum Yes - - - -
UpdateIf, RemoveIf [7] Yes Yes Yes Yes Yes

Opmerkingen

  1. Ondersteund voor (EndsWith(\<column>, "string value")) maar niet voor (EndsWith("string value", \<column>)). Als een tekenkolom (10) een waarde 'hallo' heeft, EndsWith(\<column>, "llo") retourneert deze standaard onwaar. Een tekenkolom (10) heeft 10 tekens.

  2. Directe datumfilters werken niet voor SQL Server met een on-premises gegevensgateway. U kunt echter een berekende kolom maken die werkt. U kunt bijvoorbeeld het volgende maken:
    ALTER TABLE myTable ADD DateAsInt AS (YEAR([date]) * 10000 + MONTH([date]) * 100 + DAY([date]))
    Filter vervolgens op de kolom berekende getallen.

  3. Ondersteund voor ("string value" in \<column>), maar niet voor (\<column> in "string value").

  4. Een expressie zoals Filter('[dbo].[MyOrders]', !IsBlank(CustomerId)) die niet wordt gedelegeerd aan de server. U kunt echter een expressie gebruiken, zoals Filter('[dbo].[MyOrders]', CustomerId <> Blank()), die delegert aan de server en semantisch wordt gesloten. Het verschil is dat de tweede expressie de lege tekenreeks ("") niet als leeg behandelt. Hoewel de expressies niet gelijkwaardig zijn, werkt deze mogelijk voor uw doeleinden. U kunt deze methode niet gebruiken voor het gegevenstype Guid.

  5. Power Apps delegeert de Len functie, maar het gedrag werkt mogelijk niet zoals verwacht. In SQL Server heeft een char(10) kolom met de waarde hello altijd een lengte van 10. Power Apps behandelt deze tekenreeks echter als een lengte van 5, wat discrepanties en verwarring kan veroorzaken. Gebruik niet char/nchar op SQL Server, maar gebruik varchar/nvarchar in plaats daarvan.

  6. Ondersteund voor (StartsWith(\<column>, "string value")), maar niet voor (StartsWith("string value", \<column>))

  7. UpdateIf en RemoveIf werken lokaal, maar simuleren delegering tot een limiet van 500/2000 records. Ze brengen records achtereenvolgens buiten de recordlimiet van 500/2000 niet-delegeren. Records die voldoen aan de if-voorwaarde worden verzameld. Over het algemeen worden maximaal 500/2000 records afzonderlijk verzameld en vervolgens gewijzigd per uitvoering. Er kunnen echter meer records worden bijgewerkt als de bestaande lokale gegevenscache groot is omdat de functie mogelijk toegang heeft tot meer records voor evaluatie.