QueryBuilder Klasse
Fluent-Schnittstelle zum Erstellen und Ausführen von OData-Abfragen für einen Synchronisierungsclient.
Stellt Methodenketten zum Erstellen komplexer Abfragen mit schreibbaren Filterausdrücken bereit. Kann eigenständig (via build()) verwendet werden oder an einen Client (via execute) gebunden werden.
Konstruktor
QueryBuilder(table: str)
Parameter
| Name | Beschreibung |
|---|---|
|
table
Erforderlich
|
Tabellenschemaname zur Abfrage. |
Beispiele
Eigenständige Abfrageerstellung:
from PowerPlatform.Dataverse.models import col
query = (QueryBuilder("account")
.select("name")
.where(col("statecode") == 0)
.top(10))
params = query.build()
# {"table": "account", "select": ["name"],
# "filter": "statecode eq 0", "top": 10}
Methoden
| execute |
Führen Sie die Abfrage aus, und geben Sie Ergebnisse zurück. Gibt eine QueryResult mit allen gesammelten Seiten zurück. Wird für eine faule Pro-Seiten-Iteration verwendet execute_pages . Diese Methode ist nur verfügbar, wenn der QueryBuilder über Mindestens eine von
Veraltet seit Version The: Beispiel:
|
| execute_pages |
Lazily yield one QueryResult per HTTP page. Jede Iteration löst eine Netzwerkanforderung über Mindestens eine von Beispiel:
|
| to_dataframe |
Führen Sie die Abfrage aus, und geben Sie Ergebnisse als Pandas DataFrame zurück.
Veraltet seit der Verwendung der Version: Alle Seiten werden in einem einzelnen DataFrame konsolidiert. Diese Methode ist nur verfügbar, wenn der QueryBuilder über Mindestens eine von Beispiel:
|
execute
Führen Sie die Abfrage aus, und geben Sie Ergebnisse zurück.
Gibt eine QueryResult mit allen gesammelten Seiten zurück. Wird für eine faule Pro-Seiten-Iteration verwendet execute_pages .
Diese Methode ist nur verfügbar, wenn der QueryBuilder über client.query.builder(table). Eigenständige QueryBuilder Instanzen sollten verwendet werden build() , um Parameter abzurufen und manuell zu client.records.list() übergeben.
Mindestens eine von select(), where()oder top() muss vor execute()aufgerufen werden ; andernfalls wird eine ValueError ausgelöst, um versehentliche Volltabellenscans zu verhindern.
Veraltet seit Version The:by_page Der Parameter ist veraltet. Wird für eine faule Iteration pro Seite oder nur execute() (keine Kennzeichnung) für das standardmäßige eifrige Ergebnis verwendetexecute_pages.
Beispiel:
from PowerPlatform.Dataverse.models import col
for record in (client.query.builder("account")
.select("name")
.where(col("statecode") == 0)
.execute()):
print(record["name"])
execute(*, by_page=<object object>) -> QueryResult | Iterator[QueryResult]
Nur Schlüsselwortparameter
| Name | Beschreibung |
|---|---|
|
by_page
|
Standardwert: <object object at 0x0000021A213288E0>
|
Gibt zurück
| Typ | Beschreibung |
|---|---|
|
QueryResult mit allen gesammelten Seiten (Standard) oder Seiten iterator (veraltet |
Ausnahmen
| Typ | Beschreibung |
|---|---|
|
Wenn keine |
|
|
Wenn die Abfrage nicht über |
execute_pages
Lazily yield one QueryResult per HTTP page.
Jede Iteration löst eine Netzwerkanforderung über @odata.nextLink.
Eine Aufnahme – iterieren Sie nicht mehr als einmal.
Mindestens eine von select(), where()oder top() muss vor execute_pages()aufgerufen werden ; andernfalls wird eine ValueError ausgelöst, um versehentliche Volltabellenscans zu verhindern.
Beispiel:
from PowerPlatform.Dataverse.models import col
for page in (client.query.builder("account")
.select("name")
.where(col("statecode") == 0)
.execute_pages()):
process(page.to_dataframe())
execute_pages() -> Iterator[QueryResult]
Gibt zurück
| Typ | Beschreibung |
|---|---|
|
Iterator pro Seite QueryResult. |
Ausnahmen
| Typ | Beschreibung |
|---|---|
|
Wenn keine |
|
|
Wenn die Abfrage nicht über |
to_dataframe
Führen Sie die Abfrage aus, und geben Sie Ergebnisse als Pandas DataFrame zurück.
Veraltet seit der Verwendung der Version:QueryBuilder.execute().to_dataframe() Statt.
QueryBuilder.to_dataframe() wird in einer zukünftigen Version entfernt.
Alle Seiten werden in einem einzelnen DataFrame konsolidiert.
Diese Methode ist nur verfügbar, wenn der QueryBuilder über client.query.builder(table).
Mindestens eine von select(), where()oder top() muss vor to_dataframe()aufgerufen werden ; andernfalls wird eine ValueError ausgelöst, um versehentliche Volltabellenscans zu verhindern.
Beispiel:
from PowerPlatform.Dataverse.models import col
df = (client.query.builder("account")
.select("name", "telephone1")
.where(col("statecode") == 0)
.top(100)
.execute()
.to_dataframe())
to_dataframe() -> DataFrame
Gibt zurück
| Typ | Beschreibung |
|---|---|
|
DataFrame mit allen übereinstimmenden Datensätzen. Gibt einen leeren DataFrame zurück, wenn keine Datensätze übereinstimmen. |
Ausnahmen
| Typ | Beschreibung |
|---|---|
|
Wenn keine |
|
|
Wenn die Abfrage nicht über |