FetchXmlQuery Classe

Objet de requête FetchXML inert. Aucune requête HTTP n’est effectuée tant qu’elle execute n’est pas appelée.execute_pages

Obtenu via client.query.fetchxml(xml).

Constructeur

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

Paramètres

Nom Description
xml
Obligatoire

Chaîne FetchXML supprimée et bien formée.

entity_name
Obligatoire

Nom du schéma d’entité de l’élément <entity> .

client
Obligatoire

Parent DataverseClient.

Méthodes

execute

Exécutez la requête FetchXML et retournez tous les résultats en tant que QueryResult.

Blocage : récupère toutes les pages en amont et conserve chaque enregistrement en mémoire avant de retourner. Simple pour les jeux de résultats de petite à moyenne taille ; utilisez execute_pages quand le jeu de résultats peut être volumineux ou que vous souhaitez traiter les enregistrements à mesure qu’ils arrivent.

Exemple :


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

Donnez-en un QueryResult par page HTTP.

Streaming : chaque itération déclenche une requête HTTP et génère une page. Préférez quand execute :

  • Le jeu de résultats peut être volumineux et vous ne souhaitez pas tous les enregistrements en mémoire en même temps.

  • Vous souhaitez quitter tôt : arrêtez l’itération une fois que vous trouvez ce dont vous avez besoin et les allers-retours HTTP restants sont ignorés automatiquement.

  • Vous avez besoin de rapports de progression par page ou d’écritures en aval par lot.

One-shot - ne pas itérer plusieurs fois.

Exemple :


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

execute

Exécutez la requête FetchXML et retournez tous les résultats en tant que QueryResult.

Blocage : récupère toutes les pages en amont et conserve chaque enregistrement en mémoire avant de retourner. Simple pour les jeux de résultats de petite à moyenne taille ; utilisez execute_pages quand le jeu de résultats peut être volumineux ou que vous souhaitez traiter les enregistrements à mesure qu’ils arrivent.

Exemple :


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

Retours

Type Description

Tous les enregistrements correspondants sur toutes les pages.

execute_pages

Donnez-en un QueryResult par page HTTP.

Streaming : chaque itération déclenche une requête HTTP et génère une page. Préférez quand execute :

  • Le jeu de résultats peut être volumineux et vous ne souhaitez pas tous les enregistrements en mémoire en même temps.

  • Vous souhaitez quitter tôt : arrêtez l’itération une fois que vous trouvez ce dont vous avez besoin et les allers-retours HTTP restants sont ignorés automatiquement.

  • Vous avez besoin de rapports de progression par page ou d’écritures en aval par lot.

One-shot - ne pas itérer plusieurs fois.

Exemple :


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

Retours

Type Description

Itérateur d’objets par page QueryResult .