PostgreSQL Tcl Interface Documentation
Prev | Fast Backward |  | Fast Forward | Next

# pg_select

## Name

pg_select -- loop over the result of a query

## Synopsis

    pg_select conn commandString arrayVar procedure

## Description

`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 query.

commandString

  The SQL query to execute.

arrayVar

  An array variable for returned rows.

procedure

  The procedure to run for each returned row.

## Return Value

None

## Examples

This examples assumes that the table `table1` has columns `control` and `name` (and perhaps others):

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

Prev | Home | Next
pg_result | Up | pg_execute