Ergebnisse in SQL Server anzeigen
Wenn Sie ein direktes Tabellenzugriffsmuster oder eine Ansicht verwenden, ist das Abfrageergebnis an das Steuerelement oder die Tabelle gebunden. Power Fx aktiviert automatisch das Paging von Daten in Ihrer App in den Katalog oder die Tabelle. Gespeicherte Prozeduren können jedoch ein Abfrageergebnis, einen Rückgabecode oder Werte aus Out
-Parametern zurückgeben.
Um diese unterschiedlichen Ergebnistypen in Ihrer Anwendung zu verwenden, verwenden Sie die folgenden Muster.
Formeln für verschiedene Steuerelemente
Typische Formeln für Ansichten und gespeicherte Prozeduren:
Kontrolle | Eigenschaften | Formel | Beschreibung |
---|---|---|---|
Galerie oder Tabelle | Elemente | DataSource |
Die Tabellen- oder Ansichtsdatenquelle kann mit einem Filter und einem StartsWith weiter verfeinert werden. Die anderen generierten Abfrageklauseln werden an die vorhandene Abfrage angefügt. |
Form | DataSource | DataSource |
Die Tabellen- oder Ansichtsdatenquelle |
Übermitteln-Schaltfläche auf einem Formular | OnSelect | DataSource.dboSPName({ args}); Refresh (‘DataSource’) |
Die erste DataSource in dieser Formel ist die Datenquelle der gespeicherten Prozedur – diejenige, welche die gespeicherte Prozedur enthält. Die DataSource in der Aktualisieren-Formel ist die Ansichtsdatenquelle. |
Löschen-Schaltfläche in einem Formular | OnSelect | SP DataSource.dboSPName({ args}); Refresh (‘View DataSource’) |
Die erste DataSource in dieser Formel ist die Datenquelle der gespeicherten Prozedur – diejenige, welche die gespeicherte Prozedur enthält. Die DataSource in der Aktualisieren-Formel ist die Ansichtsdatenquelle. |
Rückgabecode
Verwenden Sie diesen Rückgabecode, um auf die Ergebnisse einer return-Anweisung zuzugreifen.
<datasourceName>.<StoredprocedureName>({<paramName1: value, paramName2: value, ... >}).ReturnCode
Ausgabe...parameter
Verwenden Sie den Parameternamen so, wie er in der JSON-Nutzlast angezeigt wird.
<datasourceName>.<StoredprocedureName>({<paramName1: value, paramName2: value, ... >}).OutputParameters.<parameterName>
Ergebnismengen
Auf andere Tabellen kann über ihren Namen zugegriffen werden, z. B., Table1
, Table2
oder Table3
.
<datasourceName>.<StoredprocedureName>({<paramName1: value, paramName2: value, ... >}).ResultSets.Table1
Nicht typisierte Ergebnisse
Einige komplizierte gespeicherte Prozeduren geben nicht typisierte Ergebnisse zurück. Dieses Ergebnis ist bei gespeicherten Prozeduren, die temporäre Tabellen verwenden, üblich. Power Apps kann die Ergebnisse nicht einfach im Voraus bestimmen. Daher wird die Rückgabe als nicht typisiert gekennzeichnet und Sie können nicht direkt auf diese Ergebnisse zugreifen. Sie müssen erst einen Typ angeben.
Sie können mit dem folgenden Beispiel auf die Daten zugreifen.
Beispiel für den Datenzugriff
Ziehen Sie die Ergebnisse in eine Variable mit dem Namen
MyUntypedObject
.Ziehen Sie
Table1
aus dieser Variablen und fügen Sie sie in eine Variable namenstable1
ein.Tipp
Dieser Schritt ist nicht absolut erforderlich. Es ist jedoch sinnvoll, alle Ergebnisse in eine Variable einzufügen und dann später die benötigten Teile herauszuziehen.
Interieren Sie
table1
und extrahieren Sie die JSON-Elemente in benannten Wertpaaren.Gleichen Sie die Namen mit den Namen ab, die in der JSON-Nutzlast zurückgegeben werden.
Öffnen Sie zur Überprüfung einen Power Apps Monitor und sehen Sie sich den Textabschnitt des Datenknotens für einen Datensatz an.
Set(
<MyUntypedObject>, // pull results into variable
<datasourceName>.<StoredprocedureName>(
{ <paramName1>: "someString" }
).ResultSets
);
Set(
table1, // put Table1 into table1
<MyUntypedObject>.Table1
);
Set(
TypedTable,
ForAll(
table1, // extract JSON from table1
{
BookID: Value(ThisRecord.BookID),
BookName: Text(ThisRecord.BookName)
}
)
);