README
上传用户:blenddy
上传日期:2007-01-07
资源大小:6495k
文件大小:2k
- libpgtcl is a library that implements Tcl commands for front-end
- clients to interact with the Postgresql 6.3 (and perhaps later)
- backends. See libpgtcl.doc for details.
-
- For an example of how to build a new tclsh to use libpgtcl, see the
- directory ../bin/pgtclsh
- Note this version is modified by NeoSoft to have the following additional
- features:
- 1. Postgres connections are a valid Tcl channel, and can therefore
- be manipulated by the interp command (ie. shared or transfered).
- A connection handle's results are transfered/shared with it.
- (Result handles are NOT channels, though it was tempting). Note
- that a "close $connection" is now functionally identical to a
- "pg_disconnect $connection", although pg_connect must be used
- to create a connection.
-
- 2. Result handles are changed in format: ${connection}.<result#>.
- This just means for a connection 'pgtcl0', they look like pgtcl0.0,
- pgtcl0.1, etc. Enforcing this syntax makes it easy to look up
- the real pointer by indexing into an array associated with the
- connection.
- 3. I/O routines are now defined for the connection handle. I/O to/from
- the connection is only valid under certain circumstances: following
- the execution of the queries "copy <table> from stdin" or
- "copy <table> to stdout". In these cases, the result handle obtains
- an intermediate status of "PGRES_COPY_IN" or "PGRES_COPY_OUT". The
- programmer is then expected to use Tcl gets or read commands on the
- database connection (not the result handle) to extract the copy data.
- For copy outs, read until the standard EOF indication is encountered.
- For copy ins, puts a single terminator (.). The statement for this
- would be
- puts $conn "\." or puts $conn {.}
- In either case (upon detecting the EOF or putting the `.', the status
- of the result handle will change to "PGRES_COMMAND_OK", and any further
- I/O attempts will cause a Tcl error.