QueryBuilder Classe

Interfaccia Fluent per la compilazione e l'esecuzione di query OData su un client di sincronizzazione.

Fornisce il concatenamento dei metodi per costruire query complesse con espressioni di filtro componibili. Può essere usato autonomo (tramite build()) o associato a un client (tramite execute).

Costruttore

QueryBuilder(table: str)

Parametri

Nome Descrizione
table
Necessario
str

Nome dello schema di tabella su cui eseguire una query.

Esempio

Costruzione di query autonoma:


   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}

Metodi

execute

Eseguire la query e restituire i risultati.

Restituisce un oggetto QueryResult con tutte le pagine raccolte. Usare execute_pages per l'iterazione differita per pagina.

Questo metodo è disponibile solo quando QueryBuilder è stato creato tramite client.query.builder(table). Le istanze autonome QueryBuilder devono usare build() per ottenere parametri e passarli manualmente client.records.list() .

Almeno uno di select(), where()o top() deve essere chiamato prima execute()di . In caso contrario, viene generato un ValueError oggetto per evitare analisi accidentali di tabelle complete.

Deprecato dalla versione The:by_page il parametro è deprecato. Usare execute_pages per l'iterazione differita per pagina o normale execute() (nessun flag) per il risultato eager predefinito.

Esempio:


   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 restituisce una QueryResult per pagina HTTP.

Ogni iterazione attiva una richiesta di rete tramite @odata.nextLink. Un colpo : non eseguire l'iterazione più di una volta.

Almeno uno di select(), where()o top() deve essere chiamato prima execute_pages()di . In caso contrario, viene generato un ValueError oggetto per evitare analisi accidentali di tabelle complete.

Esempio:


   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

Eseguire la query e restituire i risultati come dataframe pandas.

Deprecato dall'uso della versione:QueryBuilder.execute().to_dataframe() Invece. QueryBuilder.to_dataframe() verrà rimosso in una versione futura.

Tutte le pagine vengono consolidate in un singolo dataframe.

Questo metodo è disponibile solo quando QueryBuilder è stato creato tramite client.query.builder(table).

Almeno uno di select(), where()o top() deve essere chiamato prima to_dataframe()di . In caso contrario, viene generato un ValueError oggetto per evitare analisi accidentali di tabelle complete.

Esempio:


   from PowerPlatform.Dataverse.models import col

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

execute

Eseguire la query e restituire i risultati.

Restituisce un oggetto QueryResult con tutte le pagine raccolte. Usare execute_pages per l'iterazione differita per pagina.

Questo metodo è disponibile solo quando QueryBuilder è stato creato tramite client.query.builder(table). Le istanze autonome QueryBuilder devono usare build() per ottenere parametri e passarli manualmente client.records.list() .

Almeno uno di select(), where()o top() deve essere chiamato prima execute()di . In caso contrario, viene generato un ValueError oggetto per evitare analisi accidentali di tabelle complete.

Deprecato dalla versione The:by_page il parametro è deprecato. Usare execute_pages per l'iterazione differita per pagina o normale execute() (nessun flag) per il risultato eager predefinito.

Esempio:


   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]

Parametri di sole parole chiave

Nome Descrizione
by_page
Valore predefinito: <object object at 0x0000021A213288E0>

Valori restituiti

Tipo Descrizione

QueryResult con tutte le pagine raccolte (impostazione predefinita) o iteratore di pagina (deprecato by_page=True).

Eccezioni

Tipo Descrizione

Se non è stato impostato alcun selectwheretop vincolo.

Se la query non è stata creata tramite client.query.builder()

execute_pages

Lazily restituisce una QueryResult per pagina HTTP.

Ogni iterazione attiva una richiesta di rete tramite @odata.nextLink. Un colpo : non eseguire l'iterazione più di una volta.

Almeno uno di select(), where()o top() deve essere chiamato prima execute_pages()di . In caso contrario, viene generato un ValueError oggetto per evitare analisi accidentali di tabelle complete.

Esempio:


   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]

Valori restituiti

Tipo Descrizione

Iteratore di per pagina QueryResult.

Eccezioni

Tipo Descrizione

Se non è stato impostato alcun selectwheretop vincolo.

Se la query non è stata creata tramite client.query.builder()

to_dataframe

Eseguire la query e restituire i risultati come dataframe pandas.

Deprecato dall'uso della versione:QueryBuilder.execute().to_dataframe() Invece. QueryBuilder.to_dataframe() verrà rimosso in una versione futura.

Tutte le pagine vengono consolidate in un singolo dataframe.

Questo metodo è disponibile solo quando QueryBuilder è stato creato tramite client.query.builder(table).

Almeno uno di select(), where()o top() deve essere chiamato prima to_dataframe()di . In caso contrario, viene generato un ValueError oggetto per evitare analisi accidentali di tabelle complete.

Esempio:


   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

Valori restituiti

Tipo Descrizione

DataFrame contenente tutti i record corrispondenti. Restituisce un dataframe vuoto quando nessun record corrisponde.

Eccezioni

Tipo Descrizione

Se non è stato impostato alcun selectwheretop vincolo.

Se la query non è stata creata tramite client.query.builder()