QueryBuilder Classe

Interface fluente para construir e executar consultas OData contra um cliente de sincronização.

Fornece cadeia de métodos para construir consultas complexas com expressões de filtro componíveis. Pode ser usado de forma autónoma (via build()) ou vinculado a um cliente (via execute).

Construtor

QueryBuilder(table: str)

Parâmetros

Name Description
table
Necessário
str

Nome do esquema da tabela para consulta.

Exemplos

Construção de consulta autónoma:


   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étodos

execute

Execute a consulta e devolve os resultados.

Devolve uma QueryResult com todas as páginas recolhidas. Use execute_pages para iteração preguiçosa por página.

Este método só está disponível quando o QueryBuilder foi criado via client.query.builder(table). As instâncias autónomas QueryBuilder devem ser usadas build() para obter parâmetros e passá-los client.records.list() manualmente.

Pelo menos um dos select(), , ou top() deve ser chamado antes execute()de ; caso contrário, a ValueError é elevado para evitar varreduras acidentais where()de tabela completa.

Descontinuado desde a versão O:by_page O parâmetro está descontinuado. Use execute_pages para iteração preguiçosa por página, ou simples execute() (sem flag) para o resultado predefinido e ansioso.

Example:


   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

Preguiçosamente, dá um QueryResult por página HTTP.

Cada iteração desencadeia um pedido de rede através @odata.nextLinkde . One-shot — não itere mais do que uma vez.

Pelo menos um dos select(), , ou top() deve ser chamado antes execute_pages()de ; caso contrário, a ValueError é elevado para evitar varreduras acidentais where()de tabela completa.

Example:


   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

Execute os resultados da consulta e devolve como um DataFrame pandas.

Descontinuado desde a versão Uso:QueryBuilder.execute().to_dataframe() em vez disso. QueryBuilder.to_dataframe() será removido numa versão futura.

Todas as páginas são consolidadas num único DataFrame.

Este método só está disponível quando o QueryBuilder foi criado via client.query.builder(table).

Pelo menos um dos select(), , ou top() deve ser chamado antes to_dataframe()de ; caso contrário, a ValueError é elevado para evitar varreduras acidentais where()de tabela completa.

Example:


   from PowerPlatform.Dataverse.models import col

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

execute

Execute a consulta e devolve os resultados.

Devolve uma QueryResult com todas as páginas recolhidas. Use execute_pages para iteração preguiçosa por página.

Este método só está disponível quando o QueryBuilder foi criado via client.query.builder(table). As instâncias autónomas QueryBuilder devem ser usadas build() para obter parâmetros e passá-los client.records.list() manualmente.

Pelo menos um dos select(), , ou top() deve ser chamado antes execute()de ; caso contrário, a ValueError é elevado para evitar varreduras acidentais where()de tabela completa.

Descontinuado desde a versão O:by_page O parâmetro está descontinuado. Use execute_pages para iteração preguiçosa por página, ou simples execute() (sem flag) para o resultado predefinido e ansioso.

Example:


   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]

Parâmetros Só de Palavra-Chave

Name Description
by_page
Default value: <object object at 0x0000021A213288E0>

Devoluções

Tipo Description

QueryResult com todas as páginas recolhidas (por defeito), ou iterador de páginas (obsoleto by_page=True).

Exceções

Tipo Description

Se não selectwheretop tiver sido definida nenhuma restrição.

Se a consulta não foi criada via client.query.builder()

execute_pages

Preguiçosamente, dá um QueryResult por página HTTP.

Cada iteração desencadeia um pedido de rede através @odata.nextLinkde . One-shot — não itere mais do que uma vez.

Pelo menos um dos select(), , ou top() deve ser chamado antes execute_pages()de ; caso contrário, a ValueError é elevado para evitar varreduras acidentais where()de tabela completa.

Example:


   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]

Devoluções

Tipo Description

Iterador de por página QueryResult.

Exceções

Tipo Description

Se não selectwheretop tiver sido definida nenhuma restrição.

Se a consulta não foi criada via client.query.builder()

to_dataframe

Execute os resultados da consulta e devolve como um DataFrame pandas.

Descontinuado desde a versão Uso:QueryBuilder.execute().to_dataframe() em vez disso. QueryBuilder.to_dataframe() será removido numa versão futura.

Todas as páginas são consolidadas num único DataFrame.

Este método só está disponível quando o QueryBuilder foi criado via client.query.builder(table).

Pelo menos um dos select(), , ou top() deve ser chamado antes to_dataframe()de ; caso contrário, a ValueError é elevado para evitar varreduras acidentais where()de tabela completa.

Example:


   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

Devoluções

Tipo Description

DataFrame contendo todos os registos correspondentes. Devolve um DataFrame vazio quando nenhum registo corresponde.

Exceções

Tipo Description

Se não selectwheretop tiver sido definida nenhuma restrição.

Se a consulta não foi criada via client.query.builder()