Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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.
Melden Sie sich bei Power Apps an und gehen Sie zur Apps-Seite.
Wählen Sie Neue App>Mit Daten beginnen aus.
Wählen Sie auf der Seite Mit Daten beginnen die Option Externe Daten verbinden aus.
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.
Wählen Sie Ihre SQL-Verbindung aus.
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.
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.
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
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.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.Unterstützt für
("string value" in \<column>), aber nicht für(\<column> in "string value").Ein Ausdruck, z
Filter('[dbo].[MyOrders]', !IsBlank(CustomerId)). B. wird nicht an den Server delegieren. Sie können jedoch einen Ausdruck verwenden, zFilter('[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.Power Apps delegiert die
LenFunktion, 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. Verwendenchar/ncharSie nicht auf SQL Server, sondern verwenden Sievarchar/nvarcharstattdessen.Unterstützt für
(StartsWith(\<column>, "string value")), aber nicht für(StartsWith("string value", \<column>))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.