FetchXmlQuery クラス

不活性 FetchXML クエリ オブジェクト。 executeまたはexecute_pagesが呼び出されるまで、HTTP 要求は行われません。

client.query.fetchxml(xml)経由で取得されます。

コンストラクター

FetchXmlQuery(xml: str, entity_name: str, client: DataverseClient)

パラメーター

名前 説明
xml
必須

削除された整形式の FetchXML 文字列。

entity_name
必須

<entity>要素からのエンティティ スキーマ名。

client
必須

メソッド

execute

FetchXML クエリを実行し、すべての結果を QueryResultとして返します。

ブロッキング — すべてのページを事前にフェッチし、すべてのレコードをメモリ内に保持してから返します。 小規模から中規模の結果セットの場合は簡単です。結果セットが大きい可能性がある場合や、レコードが到着したときにレコードを処理する場合は、 execute_pages を使用します。

例:


   rows = client.query.fetchxml(xml).execute()
   df = rows.to_dataframe()
execute_pages

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

ストリーミング — 各イテレーションで 1 つの HTTP 要求が発生し、1 ページが生成されます。 次の場合は、 execute よりも優先されます。

  • 結果セットが大きい場合があり、一度にすべてのレコードをメモリに格納する必要はありません。

  • 早期終了が必要な場合:必要なものを見つけたら反復処理を停止し、残りの HTTP ラウンドトリップは自動的にスキップされます。

  • ページごとの進行状況レポートまたはバッチダウンストリーム書き込みが必要です。

ワンショット — 複数回繰り返さないでください。

例:


   for page in client.query.fetchxml(xml).execute_pages():
       process(page.to_dataframe())

execute

FetchXML クエリを実行し、すべての結果を QueryResultとして返します。

ブロッキング — すべてのページを事前にフェッチし、すべてのレコードをメモリ内に保持してから返します。 小規模から中規模の結果セットの場合は簡単です。結果セットが大きい可能性がある場合や、レコードが到着したときにレコードを処理する場合は、 execute_pages を使用します。

例:


   rows = client.query.fetchxml(xml).execute()
   df = rows.to_dataframe()
execute() -> QueryResult

返品

説明

すべてのページで一致するすべてのレコード。

execute_pages

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

ストリーミング — 各イテレーションで 1 つの HTTP 要求が発生し、1 ページが生成されます。 次の場合は、 execute よりも優先されます。

  • 結果セットが大きい場合があり、一度にすべてのレコードをメモリに格納する必要はありません。

  • 早期終了が必要な場合:必要なものを見つけたら反復処理を停止し、残りの HTTP ラウンドトリップは自動的にスキップされます。

  • ページごとの進行状況レポートまたはバッチダウンストリーム書き込みが必要です。

ワンショット — 複数回繰り返さないでください。

例:


   for page in client.query.fetchxml(xml).execute_pages():
       process(page.to_dataframe())
execute_pages() -> Iterator[QueryResult]

返品

説明

ページごとの QueryResult オブジェクトの反復子。