QueryBuilder Класс

Интерфейс Fluent для создания и выполнения запросов OData к клиенту синхронизации.

Предоставляет цепочку методов для создания сложных запросов с помощью составных выражений фильтров. Можно использовать автономную (через build()) или привязать к клиенту (через execute).

Конструктор

QueryBuilder(table: str)

Параметры

Имя Описание
table
Обязательно
str

Имя схемы таблицы для запроса.

Примеры

Построение автономных запросов:


   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}

Методы

execute

Выполните запрос и результаты возврата.

Возвращает все собранные QueryResult страницы. Используется execute_pages для отложенной итерации на страницу.

Этот метод доступен только при создании QueryBuilder с помощью client.query.builder(table). QueryBuilder Автономные экземпляры должны использовать build() для получения параметров и передачи их client.records.list() вручную.

По крайней мере один из select()них where()или top() должен вызываться раньше execute(); в противном случае ValueError вызывается, чтобы предотвратить случайное сканирование полной таблицы.

Не рекомендуется использовать с версии The:by_page параметр не рекомендуется. Используется execute_pages для отложенной итерации на страницу или обычного execute() (без флага) для результата по умолчанию.

Пример:


   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 дает по одному QueryResult на страницу HTTP.

Каждая итерация активирует сетевой запрос через @odata.nextLink. Один выстрел — не итерации более одного раза.

По крайней мере один из select()них where()или top() должен вызываться раньше execute_pages(); в противном случае ValueError вызывается, чтобы предотвратить случайное сканирование полной таблицы.

Пример:


   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

Выполните запрос и результаты возврата в виде кадра данных pandas.

Не рекомендуется использовать версиюQueryBuilder.execute().to_dataframe() : Вместо. QueryBuilder.to_dataframe() в будущем выпуске будет удален.

Все страницы объединяются в один кадр данных.

Этот метод доступен только при создании QueryBuilder с помощью client.query.builder(table).

По крайней мере один из select()них where()или top() должен вызываться раньше to_dataframe(); в противном случае ValueError вызывается, чтобы предотвратить случайное сканирование полной таблицы.

Пример:


   from PowerPlatform.Dataverse.models import col

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

execute

Выполните запрос и результаты возврата.

Возвращает все собранные QueryResult страницы. Используется execute_pages для отложенной итерации на страницу.

Этот метод доступен только при создании QueryBuilder с помощью client.query.builder(table). QueryBuilder Автономные экземпляры должны использовать build() для получения параметров и передачи их client.records.list() вручную.

По крайней мере один из select()них where()или top() должен вызываться раньше execute(); в противном случае ValueError вызывается, чтобы предотвратить случайное сканирование полной таблицы.

Не рекомендуется использовать с версии The:by_page параметр не рекомендуется. Используется execute_pages для отложенной итерации на страницу или обычного execute() (без флага) для результата по умолчанию.

Пример:


   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]

Параметры Keyword-Only

Имя Описание
by_page
Default value: <object object at 0x0000021A213288E0>

Возвращаемое значение

Тип Описание

QueryResult со всеми собранными страницами (по умолчанию) или итератором страниц (не рекомендуется by_page=True).

Исключения

Тип Описание

Если ограничение не selectwheretop задано.

Если запрос не был создан с помощью client.query.builder()

execute_pages

Lazily дает по одному QueryResult на страницу HTTP.

Каждая итерация активирует сетевой запрос через @odata.nextLink. Один выстрел — не итерации более одного раза.

По крайней мере один из select()них where()или top() должен вызываться раньше execute_pages(); в противном случае ValueError вызывается, чтобы предотвратить случайное сканирование полной таблицы.

Пример:


   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]

Возвращаемое значение

Тип Описание

Итератор для каждой страницы QueryResult.

Исключения

Тип Описание

Если ограничение не selectwheretop задано.

Если запрос не был создан с помощью client.query.builder()

to_dataframe

Выполните запрос и результаты возврата в виде кадра данных pandas.

Не рекомендуется использовать версиюQueryBuilder.execute().to_dataframe() : Вместо. QueryBuilder.to_dataframe() в будущем выпуске будет удален.

Все страницы объединяются в один кадр данных.

Этот метод доступен только при создании QueryBuilder с помощью client.query.builder(table).

По крайней мере один из select()них where()или top() должен вызываться раньше to_dataframe(); в противном случае ValueError вызывается, чтобы предотвратить случайное сканирование полной таблицы.

Пример:


   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

Возвращаемое значение

Тип Описание

Кадр данных, содержащий все соответствующие записи. Возвращает пустой кадр данных, если записи не совпадают.

Исключения

Тип Описание

Если ограничение не selectwheretop задано.

Если запрос не был создан с помощью client.query.builder()