pg_select

名前

pg_select -- 問い合わせ結果を繰り返し処理します。

概要

pg_select conn commandString arrayVar procedure

説明

pg_selectは、問い合わせ((SELECT 文)をPostgreSQL サーバに送信し、結果内の各行に対して、指定した小さなコードを実行します。 commandStringSELECT文でなければなりません。 他を指定するとエラーが返されます。 arrayVar変数はループで使用される配列です。 各行に対し、列名を配列の添字とした形でarrayVarにその行の値が代入されます。 その後、procedureが実行されます。

列の値に加え、以下の特殊な項目が配列内に作成されます。

.headers

問い合わせで返される列名のリストです。

.numcols

問い合わせで返された列数です。

.tupno

0から始まる現在の行番号です。 ループ本体の繰り返し毎に1増やされます。

引数

conn

コマンドを実行する接続のハンドルです。

commandString

実行するSQL問い合わせです。

arrayVar

取り出した行用の配列変数です。

procedure

取り出した行毎に実行されるプロシージャです。

戻り値

ありません。

この例では、table1テーブルがcontrolname 列を持つことを前提としています。(他の列を持っていても構いません。)

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