QueryBuilder クラス

同期クライアントに対して OData クエリを構築および実行するための Fluent インターフェイス。

構成可能なフィルター式を使用して複雑なクエリを構築するためのメソッド チェーンを提供します。 スタンドアロン ( 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を使用して、ページごとの遅延反復を行います。

このメソッドは、 client.query.builder(table)を使用して QueryBuilder が作成された場合にのみ使用できます。 スタンドアロン QueryBuilder インスタンスでは、 build() を使用してパラメーターを取得し、手動で client.records.list() に渡す必要があります。

execute()する前に、少なくとも 1 つのselect()where()、またはtop()を呼び出す必要があります。それ以外の場合は、テーブル全体を誤ってスキャンしないように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

HTTP ページごとに 1 つの QueryResult を遅延で生成します。

各イテレーションは、 @odata.nextLinkを介してネットワーク要求をトリガーします。 ワンショット — 複数回繰り返さないでください。

execute_pages()する前に、少なくとも 1 つのselect()where()、またはtop()を呼び出す必要があります。それ以外の場合は、テーブル全体を誤ってスキャンしないように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 DataFrame として結果を返します。

バージョン Use:QueryBuilder.execute().to_dataframe() 以降非推奨その代わりに。 QueryBuilder.to_dataframe() は今後のリリースで削除される予定です。

すべてのページが 1 つの DataFrame に統合されます。

このメソッドは、 client.query.builder(table)を使用して QueryBuilder が作成された場合にのみ使用できます。

to_dataframe()する前に、少なくとも 1 つのselect()where()、またはtop()を呼び出す必要があります。それ以外の場合は、テーブル全体を誤ってスキャンしないように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を使用して、ページごとの遅延反復を行います。

このメソッドは、 client.query.builder(table)を使用して QueryBuilder が作成された場合にのみ使用できます。 スタンドアロン QueryBuilder インスタンスでは、 build() を使用してパラメーターを取得し、手動で client.records.list() に渡す必要があります。

execute()する前に、少なくとも 1 つのselect()where()、またはtop()を呼び出す必要があります。それ以外の場合は、テーブル全体を誤ってスキャンしないように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]

キーワードのみのパラメーター

名前 説明
by_page
規定値: <object object at 0x0000021A213288E0>

返品

説明

QueryResult すべてのページが収集された状態 (既定)、またはページ反復子 (非推奨の by_page=True)。

例外

説明

select where top制約が設定されていない場合。

クエリが次の方法で作成されていない場合 client.query.builder()

execute_pages

HTTP ページごとに 1 つの QueryResult を遅延で生成します。

各イテレーションは、 @odata.nextLinkを介してネットワーク要求をトリガーします。 ワンショット — 複数回繰り返さないでください。

execute_pages()する前に、少なくとも 1 つのselect()where()、またはtop()を呼び出す必要があります。それ以外の場合は、テーブル全体を誤ってスキャンしないように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の反復子。

例外

説明

select where top制約が設定されていない場合。

クエリが次の方法で作成されていない場合 client.query.builder()

to_dataframe

クエリを実行し、pandas DataFrame として結果を返します。

バージョン Use:QueryBuilder.execute().to_dataframe() 以降非推奨その代わりに。 QueryBuilder.to_dataframe() は今後のリリースで削除される予定です。

すべてのページが 1 つの DataFrame に統合されます。

このメソッドは、 client.query.builder(table)を使用して QueryBuilder が作成された場合にのみ使用できます。

to_dataframe()する前に、少なくとも 1 つのselect()where()、またはtop()を呼び出す必要があります。それ以外の場合は、テーブル全体を誤ってスキャンしないように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

返品

説明

一致するすべてのレコードを含む DataFrame。 レコードが一致しない場合は、空の DataFrame を返します。

例外

説明

select where top制約が設定されていない場合。

クエリが次の方法で作成されていない場合 client.query.builder()