FetchXmlQuery Klasse

Inert FetchXML-Abfrageobjekt. Es wird keine HTTP-Anforderung ausgeführt, bis execute sie execute_pages aufgerufen wird.

Erhalten über client.query.fetchxml(xml).

Konstruktor

FetchXmlQuery(xml: str, entity_name: str, client: DataverseClient)

Parameter

Name Beschreibung
xml
Erforderlich

Entfernte, wohlgeformte FetchXML-Zeichenfolge.

entity_name
Erforderlich

Entitätsschemaname aus dem <entity> Element.

client
Erforderlich

Übergeordnetes Element DataverseClient.

Methoden

execute

Führen Sie die FetchXML-Abfrage aus, und geben Sie alle Ergebnisse als ein QueryResult.

Blockierung – ruft alle Seiten vorab ab und hält jeden Datensatz im Arbeitsspeicher, bevor er zurückgegeben wird. Einfach für kleine bis mittlere Resultsets; verwenden, execute_pages wenn das Resultset möglicherweise groß ist oder Sie Datensätze beim Eintreffen verarbeiten möchten.

Beispiel:


   rows = client.query.fetchxml(xml).execute()
   df = rows.to_dataframe()
execute_pages

Lazily yield one QueryResult per HTTP page.

Streaming – jede Iteration löst eine HTTP-Anforderung aus und liefert eine Seite. Bevorzugen Sie es vor execute , wenn:

  • Das Resultset kann groß sein, und Sie möchten nicht, dass alle Datensätze im Arbeitsspeicher gleichzeitig gespeichert werden.

  • Sie möchten den frühen Exit beenden: Beenden Sie das Iterieren, sobald Sie gefunden haben, was Sie benötigen, und die verbleibenden HTTP-Roundtrips werden automatisch übersprungen.

  • Sie benötigen die Statusberichterstattung pro Seite oder nachgelagerte Batch-Schreibvorgänge.

Eine Aufnahme – iterieren Sie nicht mehr als einmal.

Beispiel:


   for page in client.query.fetchxml(xml).execute_pages():
       process(page.to_dataframe())

execute

Führen Sie die FetchXML-Abfrage aus, und geben Sie alle Ergebnisse als ein QueryResult.

Blockierung – ruft alle Seiten vorab ab und hält jeden Datensatz im Arbeitsspeicher, bevor er zurückgegeben wird. Einfach für kleine bis mittlere Resultsets; verwenden, execute_pages wenn das Resultset möglicherweise groß ist oder Sie Datensätze beim Eintreffen verarbeiten möchten.

Beispiel:


   rows = client.query.fetchxml(xml).execute()
   df = rows.to_dataframe()
execute() -> QueryResult

Gibt zurück

Typ Beschreibung

Alle übereinstimmenden Datensätze auf allen Seiten.

execute_pages

Lazily yield one QueryResult per HTTP page.

Streaming – jede Iteration löst eine HTTP-Anforderung aus und liefert eine Seite. Bevorzugen Sie es vor execute , wenn:

  • Das Resultset kann groß sein, und Sie möchten nicht, dass alle Datensätze im Arbeitsspeicher gleichzeitig gespeichert werden.

  • Sie möchten den frühen Exit beenden: Beenden Sie das Iterieren, sobald Sie gefunden haben, was Sie benötigen, und die verbleibenden HTTP-Roundtrips werden automatisch übersprungen.

  • Sie benötigen die Statusberichterstattung pro Seite oder nachgelagerte Batch-Schreibvorgänge.

Eine Aufnahme – iterieren Sie nicht mehr als einmal.

Beispiel:


   for page in client.query.fetchxml(xml).execute_pages():
       process(page.to_dataframe())
execute_pages() -> Iterator[QueryResult]

Gibt zurück

Typ Beschreibung

Iterator von Seitenobjekten QueryResult .