PostgreSQL 7.3.4 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_execute