Freigeben über


Verbindung zu SQL Server über Power Apps – Übersicht

Es gibt verschiedene Möglichkeiten zum Herstellen einer Verbindung mit Daten in SQL Server in Ihrer App mithilfe von Power Fx-Formeln. Sie können direkt auf die Daten zugreifen oder eine Ansicht bzw. gespeicherte Prozeduren verwenden, um Daten in Ihrer App zu erstellen, zu aktualisieren oder zu löschen.

Anforderungen

Für den direkten Zugriff auf Daten können Sie eine App Mit Daten beginnen für Ihre SQL-Server-Daten erstellen. Mit dieser Methode erhalten Sie eine grundlegende, funktionierende App, die Sie mit Ansichten und gespeicherten Prozeduren ändern können.

  1. Melden Sie sich bei Power Apps an und gehen Sie zur Apps-Seite.

  2. Wählen Sie Neue App>Mit Daten beginnen aus.

    Screenshot, der zeigt, wie Sie eine App erstellen, indem Sie mit Daten unter dem Menü „Neue App“ beginnen.

  3. Wählen Sie auf der Seite Mit Daten beginnen die Option Externe Daten verbinden aus.

  4. Wählen Sie unter Zum Starten ein Dataset auswählen die Option Aus SQL aus.

    Wenn Sie über eine bestehende SQL-Serververbindung verfügen, wird diese geladen.

    Anmerkung

    Wenn Sie noch keine SQL Server-Verbindung haben, werden Sie aufgefordert, eine zu erstellen.

  5. Wählen Sie Ihre SQL-Verbindung aus.

  6. Geben Sie Ihren Servernamen und den Datenbanknamen ein und wählen Sie dann Verbinden aus. Wählen Sie aus der angezeigten Tabellenliste eine Tabelle aus.

    Screenshot, der die Seite „App erstellen“ zeigt, auf der Sie eine SQL-Serververbindung einschließlich einer Tabelle auswählen können.

    Anmerkung

    Es wird jeweils nur eine Verbindung angezeigt. Wenn Sie eine andere Verbindung verwenden möchten, wählen Sie das Überlaufmenü ... auf Ihrer SQL-Verbindung aus, suchen Sie dann bzw. erstellen Sie eine neue SQL-Verbindung.

  7. Wählen Sie App erstellen aus.

Auf Daten zugreifen

Sobald Ihre App mit SQL Server verbunden ist, können Sie auf Daten zugreifen: Datenzugriff im SQL Server.

Ergebnisse anzeigen

Um die Ergebnisse Ihrer SQL-Abfragen anzuzeigen, (siehe: Ergebnisse im SQL-Server anzeigen.

Power Apps-Datentypzuordnungen

SQL Server Power Apps
bigint, decimal, , moneyint, numeric, smallint, smallmoney, , , tinyint, , floatreal Number
char, , ncharvarchar, nvarchar, , textntext Text
bit Boolean
date, , datetimedatetime2, smalldatetime, , datetimeoffsettime DateTime
uniqueidentifier Leitfaden

Anmerkung

Wenn in der vorherigen Tabelle kein SQL Server-Datentyp angezeigt wird, wird dieser Datentyp nicht unterstützt. Nicht unterstützte Datentypen umfassen die folgenden Beispiele: binary(), , varbinary(), , image, rowversioncursor, hierarchyid, , , sql_variant xmlSpatial Geometry Types, Spatial Geography Types und Tabelle. Außerdem werden "tinyint" und "smallint" nicht als Primärschlüssel unterstützt.

Power Apps-Funktionen und -Vorgänge, die an SQL Server delegierbar sind

Power Apps können Power Fx-Abfragevorgänge (z. B. Filter) zur Verarbeitung an die Back-End-Datenquelle delegieren. Delegierung ermöglicht es dem Back-End-Datendienst (z. B. SQL Server), die Filterarbeit auszuführen, sodass nur wenige Datensätze auf Ihr Gerät übertragen werden müssen.

Diese Tabelle zeigt, welche Vorgänge nach Datentyp an SQL Server delegierbar sind. Ausdrücke, die mit And, Or, und Not sind delegierbar.

Vorgang oder Funktion Number Text Boolean DateTime Leitfaden
*, +, -, / Yes - - Nein -
< <= > >= Yes Nein Nein Yes -
=, <> Yes Yes Yes Yes Yes
Average Yes - - - -
EndsWith - Ja [1] - - -
Filter Yes Yes Yes Ja [2] Yes
In (Teilzeichenfolge) - Ja [3] - - -
IsBlank [4] Nein Nein Nein Nein Nein
Len (Länge) - Ja [5] - - -
Lookup Yes Yes Yes Yes Yes
Max Yes - - Nein -
Min Yes - - Nein -
Search Nein Yes Nein Nein -
Sort Yes Yes Yes Yes -
SortByColumns Yes Yes Yes Yes -
StartsWith - Ja [6] - - -
Sum Yes - - - -
UpdateIf, RemoveIf [7] Yes Yes Yes Yes Yes

Hinweise

  1. Unterstützt für (EndsWith(\<column>, "string value")) , aber nicht für (EndsWith("string value", \<column>)). Wenn eine Char(10)-Spalte den Wert "hello" aufweist, EndsWith(\<column>, "llo") wird "false" standardmäßig zurückgegeben. Eine Spalte mit Zeichen (10) weist 10 Zeichen auf.

  2. Direkte Datumsfilter funktionieren für SQL Server nicht mit einem lokalen Datengateway. Sie können jedoch eine berechnete Spalte erstellen, die funktioniert. Sie können beispielsweise Folgendes erstellen:
    ALTER TABLE myTable ADD DateAsInt AS (YEAR([date]) * 10000 + MONTH([date]) * 100 + DAY([date]))
    Filtern Sie dann nach der berechneten Zahlenspalte.

  3. Unterstützt für ("string value" in \<column>), aber nicht für (\<column> in "string value").

  4. Ein Ausdruck, z Filter('[dbo].[MyOrders]', !IsBlank(CustomerId)) . B. wird nicht an den Server delegieren. Sie können jedoch einen Ausdruck verwenden, z Filter('[dbo].[MyOrders]', CustomerId <> Blank()). B. einen Ausdruck, der an den Server delegiert und semantisch geschlossen ist. Der Unterschied besteht darin, dass der zweite Ausdruck die leere Zeichenfolge ("") nicht als leer behandelt. Obwohl die Ausdrücke nicht gleichwertig sind, funktioniert letztere möglicherweise für Ihre Zwecke. Sie können diese Methode nicht für den GUID-Datentyp verwenden.

  5. Power Apps delegiert die Len Funktion, aber das Verhalten funktioniert möglicherweise nicht wie erwartet. In SQL Server weist eine Char(10)-Spalte mit dem Wert "hello" immer eine Länge von 10 auf. Power Apps behandelt diese Zeichenfolge jedoch als Länge von 5, was zu Abweichungen und Verwirrung führen kann. Verwenden char/nchar Sie nicht auf SQL Server, sondern verwenden Sie varchar/nvarchar stattdessen.

  6. Unterstützt für (StartsWith(\<column>, "string value")), aber nicht für (StartsWith("string value", \<column>))

  7. UpdateIf und RemoveIf funktionieren lokal, simulieren jedoch die Delegierung auf eine Grenze von 500/2000 Datensätzen. Sie bringen nacheinander Datensätze über die 500/2000-Rekordgrenze der Nichtdelegierung hinaus. Datensätze, die die If-Bedingung erfüllen, werden gesammelt. Im Allgemeinen werden maximal 500/2000 Datensätze separat gesammelt und dann pro Ausführung geändert. Es können jedoch weitere Datensätze aktualisiert werden, wenn der vorhandene lokale Datencache groß ist, da die Funktion möglicherweise Zugriff auf weitere Datensätze zur Auswertung hat.