QueryBuilder Classe

Interface Fluent pour la création et l’exécution de requêtes OData sur un client de synchronisation.

Fournit un chaînage de méthodes pour construire des requêtes complexes avec des expressions de filtre composables. Peut être utilisé autonome (via build()) ou lié à un client (via execute).

Constructeur

QueryBuilder(table: str)

Paramètres

Nom Description
table
Obligatoire
str

Nom du schéma de table à interroger.

Exemples

Construction de requête autonome :


   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}

Méthodes

execute

Exécutez la requête et retournez les résultats.

Retourne une QueryResult valeur avec toutes les pages collectées. Utiliser execute_pages pour l’itération par page différée.

Cette méthode est disponible uniquement lorsque le QueryBuilder a été créé via client.query.builder(table). Les instances autonomes QueryBuilder doivent être utilisées build() pour obtenir des paramètres et les client.records.list() transmettre manuellement.

Au moins un de select(), where()ou top() doit être appelé avant execute(); sinon, un ValueError élément est déclenché pour empêcher les analyses accidentelles de table complète.

Déconseillé depuis la version :by_page le paramètre est déconseillé. Utiliser execute_pages pour l’itération par page différée ou simple execute() (aucun indicateur) pour le résultat par défaut.

Exemple :


   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

Donnez-en un QueryResult par page HTTP.

Chaque itération déclenche une requête réseau via @odata.nextLink. One-shot - ne pas itérer plusieurs fois.

Au moins un de select(), where()ou top() doit être appelé avant execute_pages(); sinon, un ValueError élément est déclenché pour empêcher les analyses accidentelles de table complète.

Exemple :


   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

Exécutez la requête et retournez les résultats sous forme de DataFrame pandas.

Déconseillé depuis l’utilisation de la version :QueryBuilder.execute().to_dataframe() Place. QueryBuilder.to_dataframe() sera supprimé dans une prochaine version.

Toutes les pages sont consolidées dans un seul DataFrame.

Cette méthode est disponible uniquement lorsque le QueryBuilder a été créé via client.query.builder(table).

Au moins un de select(), where()ou top() doit être appelé avant to_dataframe(); sinon, un ValueError élément est déclenché pour empêcher les analyses accidentelles de table complète.

Exemple :


   from PowerPlatform.Dataverse.models import col

   df = (client.query.builder("account")
         .select("name", "telephone1")
         .where(col("statecode") == 0)
         .top(100)
         .execute()
         .to_dataframe())

execute

Exécutez la requête et retournez les résultats.

Retourne une QueryResult valeur avec toutes les pages collectées. Utiliser execute_pages pour l’itération par page différée.

Cette méthode est disponible uniquement lorsque le QueryBuilder a été créé via client.query.builder(table). Les instances autonomes QueryBuilder doivent être utilisées build() pour obtenir des paramètres et les client.records.list() transmettre manuellement.

Au moins un de select(), where()ou top() doit être appelé avant execute(); sinon, un ValueError élément est déclenché pour empêcher les analyses accidentelles de table complète.

Déconseillé depuis la version :by_page le paramètre est déconseillé. Utiliser execute_pages pour l’itération par page différée ou simple execute() (aucun indicateur) pour le résultat par défaut.

Exemple :


   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]

Paramètres de mot clé uniquement

Nom Description
by_page
Valeur par défaut: <object object at 0x0000021A213288E0>

Retours

Type Description

QueryResultavec toutes les pages collectées (par défaut) ou itérateur de page (déconseillé).by_page=True

Exceptions

Type Description

Si aucune contrainte n’a selectwheretop été définie.

Si la requête n’a pas été créée via client.query.builder()

execute_pages

Donnez-en un QueryResult par page HTTP.

Chaque itération déclenche une requête réseau via @odata.nextLink. One-shot - ne pas itérer plusieurs fois.

Au moins un de select(), where()ou top() doit être appelé avant execute_pages(); sinon, un ValueError élément est déclenché pour empêcher les analyses accidentelles de table complète.

Exemple :


   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]

Retours

Type Description

Itérateur de chaque page QueryResult.

Exceptions

Type Description

Si aucune contrainte n’a selectwheretop été définie.

Si la requête n’a pas été créée via client.query.builder()

to_dataframe

Exécutez la requête et retournez les résultats sous forme de DataFrame pandas.

Déconseillé depuis l’utilisation de la version :QueryBuilder.execute().to_dataframe() Place. QueryBuilder.to_dataframe() sera supprimé dans une prochaine version.

Toutes les pages sont consolidées dans un seul DataFrame.

Cette méthode est disponible uniquement lorsque le QueryBuilder a été créé via client.query.builder(table).

Au moins un de select(), where()ou top() doit être appelé avant to_dataframe(); sinon, un ValueError élément est déclenché pour empêcher les analyses accidentelles de table complète.

Exemple :


   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

Retours

Type Description

DataFrame contenant tous les enregistrements correspondants. Retourne un DataFrame vide lorsqu’aucun enregistrement ne correspond.

Exceptions

Type Description

Si aucune contrainte n’a selectwheretop été définie.

Si la requête n’a pas été créée via client.query.builder()