QueryBuilder Klasa

Interfejs Fluent do kompilowania i wykonywania zapytań OData względem klienta synchronizacji.

Zapewnia tworzenie złożonych zapytań za pomocą wyrażeń filtru, które można tworzyć. Można używać autonomicznego (za pośrednictwem build()) lub powiązanego z klientem (za pośrednictwem metody execute).

Konstruktor

QueryBuilder(table: str)

Parametry

Nazwa Opis
table
Wymagane
str

Nazwa schematu tabeli do wykonywania zapytania.

Przykłady

Autonomiczna konstrukcja zapytań:


   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}

Metody

execute

Wykonaj zapytanie i zwróć wyniki.

Zwraca obiekt QueryResult ze wszystkimi zebranymi stronami. Służy execute_pages do iteracji z opóźnieniem na stronę.

Ta metoda jest dostępna tylko wtedy, gdy program QueryBuilder został utworzony za pośrednictwem metody client.query.builder(table). Wystąpienia autonomiczne QueryBuilder powinny służyć build() do pobierania parametrów i przekazywania ich ręcznie client.records.list() .

Co najmniej jeden z select()elementów , where()lub top() musi być wywoływany przed execute(); w przeciwnym razie ValueError element jest zgłaszany, aby zapobiec przypadkowym skanowaniom w pełnej tabeli.

Przestarzałe od wersji :by_page Parametr jest przestarzały. Użyj execute_pages funkcji dla iteracji z opóźnieniem na stronę lub zwykłego execute() (bez flagi) dla domyślnego wyniku chętnego.

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

Z opóźnieniem można uzyskać jeden QueryResult na stronę HTTP.

Każda iteracja wyzwala żądanie sieciowe za pośrednictwem polecenia @odata.nextLink. Jeden strzał — nie iteruj więcej niż raz.

Co najmniej jeden z select()elementów , where()lub top() musi być wywoływany przed execute_pages(); w przeciwnym razie ValueError element jest zgłaszany, aby zapobiec przypadkowym skanowaniom w pełnej tabeli.

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

Wykonaj zapytanie i zwróć wyniki jako ramkę danych biblioteki pandas.

Przestarzałe od wersji Użyj:QueryBuilder.execute().to_dataframe() Zamiast. QueryBuilder.to_dataframe() zostanie usunięta w przyszłej wersji.

Wszystkie strony są konsolidowane w jedną ramkę danych.

Ta metoda jest dostępna tylko wtedy, gdy program QueryBuilder został utworzony za pośrednictwem metody client.query.builder(table).

Co najmniej jeden z select()elementów , where()lub top() musi być wywoływany przed to_dataframe(); w przeciwnym razie ValueError element jest zgłaszany, aby zapobiec przypadkowym skanowaniom w pełnej tabeli.

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

Wykonaj zapytanie i zwróć wyniki.

Zwraca obiekt QueryResult ze wszystkimi zebranymi stronami. Służy execute_pages do iteracji z opóźnieniem na stronę.

Ta metoda jest dostępna tylko wtedy, gdy program QueryBuilder został utworzony za pośrednictwem metody client.query.builder(table). Wystąpienia autonomiczne QueryBuilder powinny służyć build() do pobierania parametrów i przekazywania ich ręcznie client.records.list() .

Co najmniej jeden z select()elementów , where()lub top() musi być wywoływany przed execute(); w przeciwnym razie ValueError element jest zgłaszany, aby zapobiec przypadkowym skanowaniom w pełnej tabeli.

Przestarzałe od wersji :by_page Parametr jest przestarzały. Użyj execute_pages funkcji dla iteracji z opóźnieniem na stronę lub zwykłego execute() (bez flagi) dla domyślnego wyniku chętnego.

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]

Parametry Tylko słowo kluczowe

Nazwa Opis
by_page
Domyślna wartość: <object object at 0x0000021A213288E0>

Zwraca

Typ Opis

QueryResult ze wszystkimi zebranymi stronami (ustawienie domyślne) lub iteratorem strony (przestarzałe by_page=True).

Wyjątki

Typ Opis

Jeśli nie selectwheretop ustawiono żadnego ograniczenia.

Jeśli kwerenda nie została utworzona za pomocą polecenia client.query.builder()

execute_pages

Z opóźnieniem można uzyskać jeden QueryResult na stronę HTTP.

Każda iteracja wyzwala żądanie sieciowe za pośrednictwem polecenia @odata.nextLink. Jeden strzał — nie iteruj więcej niż raz.

Co najmniej jeden z select()elementów , where()lub top() musi być wywoływany przed execute_pages(); w przeciwnym razie ValueError element jest zgłaszany, aby zapobiec przypadkowym skanowaniom w pełnej tabeli.

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]

Zwraca

Typ Opis

Iterator poszczególnych stron QueryResult.

Wyjątki

Typ Opis

Jeśli nie selectwheretop ustawiono żadnego ograniczenia.

Jeśli kwerenda nie została utworzona za pomocą polecenia client.query.builder()

to_dataframe

Wykonaj zapytanie i zwróć wyniki jako ramkę danych biblioteki pandas.

Przestarzałe od wersji Użyj:QueryBuilder.execute().to_dataframe() Zamiast. QueryBuilder.to_dataframe() zostanie usunięta w przyszłej wersji.

Wszystkie strony są konsolidowane w jedną ramkę danych.

Ta metoda jest dostępna tylko wtedy, gdy program QueryBuilder został utworzony za pośrednictwem metody client.query.builder(table).

Co najmniej jeden z select()elementów , where()lub top() musi być wywoływany przed to_dataframe(); w przeciwnym razie ValueError element jest zgłaszany, aby zapobiec przypadkowym skanowaniom w pełnej tabeli.

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

Zwraca

Typ Opis

Ramka danych zawierająca wszystkie pasujące rekordy. Zwraca pustą ramkę danych, gdy rekordy nie są zgodne.

Wyjątki

Typ Opis

Jeśli nie selectwheretop ustawiono żadnego ograniczenia.

Jeśli kwerenda nie została utworzona za pomocą polecenia client.query.builder()