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 |
|
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 :
|
| 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 :
One-shot - ne pas itérer plusieurs fois. Exemple :
|
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 . |