pg_select

Name

pg_select -- 循环处理一个查询的结果

Synopsis

pg_select conn commandString arrayVar procedure

描述

pg_selectPostgreSQL 服务器提交一个查询 (SELECT 语句),并且对结果里的每个记录执行一个给定的代码段。 commandString 必须是一个 SELECT 语句。任何其它东西都返回一个错误。 arrayVar 变量是一个在循环中使用的数组名。对每个记录, arrayVar 都被填充为记录的字段值, 使用字段名作为数组的索引.然后执行 procedure

除了上述字段值之外,在数组中还有下列特殊记录∶

.headers

查询返回的字段名列表

.numcols

查询返回的字段数目.

.tupno

当前的行数目,从零开始,为每次循环体的迭代递增。

参数

conn

要执行查询的连接句柄。

commandString

要执行的 SQL 查询。

arrayVar

用于返回行的数组变量。

procedure

在每个返回的记录上运行的过程.

返回值

例子

如果表 table1 有字段 controlname (以及可能还有其他字段)下面的东西就能运行:

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