> ## Documentation Index
> Fetch the complete documentation index at: https://docs.arc.cdata.com/llms.txt
> Use this file to discover all available pages before exploring further.

# dbQuery

> データベースに対してSQL クエリを実行し、結果を行ごとに返します。

export const siteNameShort = "Arc";

データベースに対してクエリを実行します。

## 必要なパラメータ

* **driver**: クロスプラットフォーム版ではJDBC ドライバーのクラス名、.NET 版ではADO.NET プロバイダー名。
* **conn**: 接続文字列、またはデータベースURL。
* **query**: SQL クエリ文字列。

## オプションのパラメータ

* **commandtimeout**: オペレーションが完了するまでのCommandTimeout（秒）。ゼロ（0）はタイムアウトなしを意味します。デフォルトは`60` です。
* **fromrow**: 開始からスキップする行数。デフォルトは`0` です。
* **maxrows**: データベースから返される行の最大数。すべての結果を取得するには、`-1`（デフォルト）に設定します。
* **paramname#**: パラメータ名。
* **paramvalue#**: パラメータ値。
* **paramtype#**: パラメータの種類。
* **transactionid**: トランザクションのId。
* **querypassthrough**: クライアント側で検証や構文修正を行うのではなく、クエリをas-is でオペレーションに渡します。

## アウトプット属性

* **db:\\**: クエリによりアウトプットは異なります。

## 例

この例では、クロスプラットフォーム版の{siteNameShort} を使用して、MySQL データベースでストアドプロシージャを実行します。レーティングがPG-13であるすべての映画を映画テーブルから選択し、各映画のファイルを出力します。filename は映画のタイトルで、ファイルの内容は映画の説明です。paramname / paramvalue 属性は、スクリプト内でそれがどのように機能するかを示すために使われます。

```xml theme={null}
<arc:set attr="db.driver" value="cdata.jdbc.mysql.MySQLDriver" />
<arc:set attr="db.conn" value="jdbc:cdata:mysql:server=localhost;port=3306;database=sakila;user=root;password=Password123;"/>
<arc:set attr="db.query" value="SELECT * FROM `film` WHERE rating = @max_rating"/>
<arc:set attr="db.paramname#1" value="max_rating" />
<arc:set attr="db.paramvalue#1" value="PG-13" />

<arc:call op="dbQuery" in="db" out="results" >
  <!-- optional logging step to see the output of the query in the application log -->
  <arc:set attr="_log.info" value="[results.*]" />
  <!-- setting the data of each output file to be the description of the film -->
  <arc:set attr="output.data" value="[results.db:description]" />
  <!-- setting the output filename to be the title of each film -->
  <arc:set attr="output.filename" value="[results.db:title].txt" />
  <arc:push item="output" />
</arc:call>
```

{siteNameShort} がインストールおよび実行されているマシンにドライバーがインストールされている場合に限り、上記の例を変更して別のデータベースを対象にすることができます。例を.NET 用に調整するには、`driver` と`conn` のインプットを次のように変更する必要があります：

```xml theme={null}
<arc:set attr="db.driver" value="System.Data.CData.MySql" /> 
<arc:set attr="db.conn" value="Server=localhost;Database=sakila;UID=root;Password=Password123;"/>
```
