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

# dbQuery

> 對資料庫執行 SQL 查詢，並逐行傳回結果。

export const siteNameShort = "知行之橋";

對資料庫執行查詢。

## 必需的參數

* **driver**：跨平臺版本中的 JDBC 驅動程式類名稱，或 .NET 版本中的 ADO.NET 提供程式名稱。
* **conn**：連接字串或資料庫 URL。
* **query**：SQL 查詢字串。

## 可選的參數

* **commandtimeout**：操作完成的 CommandTimeout（以秒為單位）。零 (0) 表示沒有逾時。預設值為 `60`。
* **fromrow**：從開頭要跳過的行數。預設值為 `0`。
* **maxrows**：從資料庫傳回的最大行數。設定為 `-1`（預設值）可取得所有結果。
* **paramname#**：參數名稱。
* **paramvalue#**：參數值。
* **paramtype#**：參數型別。
* **transactionid**：交易的 ID。
* **querypassthrough**：將查詢按原樣傳遞給操作，而不是執行用戶端驗證和語法糾正。

## 輸出屬性

* **db:\\**：輸出因查詢而異。

## 範例

此範例使用 {siteNameShort} 跨平臺版本在 MySQL 資料庫中執行查詢。它從 film 表中 SELECT 評級為 PG-13 的所有電影，併為每部電影輸出一個檔案。檔名是電影標題，檔案內容是電影描述。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;"/>
```
