PostgreSQL 7.2 Documentation
Prev |  | Next

# pg_select

## Name

pg_select -- loop over the result of a SELECT statement

## Synopsis

    pg_select dbHandle queryString arrayVar queryProcedure

### Inputs

`dbHandle`

  Specifies a valid database handle.

`queryString`

  Specifies a valid SQL select query.

`arrayVar`

  Array variable for tuples returned.

`queryProcedure`

  Procedure run on each tuple found.

### Outputs

None.

## Description

`pg_select` submits a SELECT query to the PostgreSQL backend, and executes a given chunk of code for each tuple in the result. The `queryString` must be a SELECT statement. Anything else returns an error. The `arrayVar` variable is an array name used in the loop. For each tuple, `arrayVar` is filled in with the tuple field values, using the field names as the array indexes. Then the `queryProcedure` is executed.

In addition to the field values, the following special entries are made in the array:

`.headers`

  A list of the column names returned by the SELECT.

`.numcols`

  The number of columns returned by the SELECT.

`.tupno`

  The current tuple number, starting at zero and incrementing for each iteration of the loop body.

## Usage

This would work if table `table` has fields `control` and `name` (and, perhaps, other fields):

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

Prev | Home | Next
pg_result | Up | pg_listen