pg_select
Prev | 4.3.Query Execution Commands | Next

## pg_select

pg_select — 中央集中処理系上で SQL 命令を実行し結果の上で巡回する Execute an SQL command on the server and loop over the results

## 構文 Synopsis

    pg_select conn commandString arrayVar procedure

## 説明 Description

pg_select は問合せ(SELECT 宣言文)を PostgreSQL 中央集中処理系に提出し､結果内のそれぞれの行について､与えられた符号命令の塊を実行する｡ `commandString` はSELECT 宣言文でなければならない; それ以外なら不都合を返す｡`arrayVar` 変数は巡回内で使われる配列である｡それぞれの行について､`arrayVar` は行の値で満たされれる､その際､列の名前を配列の索引に使う｡そして､`procedure` が実行される｡ `pg_select` submits a query (SELECT statement) to the PostgreSQL server and executes a given chunk of code for each row in the result. The `commandString` must be a SELECT statement; anything else returns an error. The `arrayVar` variable is an array name used in the loop. For each row, `arrayVar` is filled in with the row values, using the column names as the array indices. Then the `procedure` is executed.

列の値に追加して､次の特別の入力が配列に為される; In addition to the column values, the following special entries are made in the array:

`.headers`

  問合せによって返される列の名前のリスト｡ A list of the column names returned by the query.

`.numcols`

  問合せによって返される列の個数｡ 　　 The number of columns returned by the query.

`.tupno`

  現在の行番号､零で始まりそれぞれの巡回の本体の工程で増加される｡ 　 The current row number, starting at zero and incrementing for each iteration of the loop body.

## 引数 Arguments

`conn`

  その上で命令を実行すべき接続の把持子｡ 　 The handle of the connection on which to execute the command.

`commandString`

  実行すべき SQL 問合せ｡ 　　 The SQL query to execute.

`arrayVar`

  返される行に関する配列変数｡ 　 An array variable for returned rows.

`procedure`

  それぞれの返される行に関する実行すべき手続き函数又は記述譜｡ 　 The procedure or script to run for each returned row.

## 返り値 Return Value

無し None

データベースとの通信中に不都合が生じるか､問合せの処理に不都合があるか､手続き函数本体が Tcl 不都合を発生すると､ Tcl 不都合が発生される｡ A Tcl error will be thrown if an error occurs communicating with the database, or if there is an error processing the query, or if the procedure body throws a Tcl error.

## 註意 Notes

pg_execute はより新しい命令で､ pg_select より特性が多く､より柔軟である｡ pg_execute is a newer command which provides more features and is more flexible than `pg_select`.

この命令は PostgreSQL libpq function `PQexec` を使うか模擬する｡ This command uses or emulates the PostgreSQL libpq function `PQexec`.

## 用例 Examples

この用例は表table1が列`control` と `name` (恐らくその他も)を有することを仮定する､ This examples assumes that the table `table1` has columns `control` and `name` (and perhaps others):

    pg_select $conn "SELECT * FROM table1" array {
        puts [format "%5d %s" $array(control) $array(name)]
    }

Prev | Up | Next
pg_execute | Home | pg_exec_params