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
str

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 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_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())
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())

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 by_page=True).

Ausnahmen

Typ Beschreibung

Wenn keine selectwheretop Einschränkung festgelegt wurde.

Wenn die Abfrage nicht über client.query.builder()

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 selectwheretop Einschränkung festgelegt wurde.

Wenn die Abfrage nicht über client.query.builder()

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 selectwheretop Einschränkung festgelegt wurde.

Wenn die Abfrage nicht über client.query.builder()