I am developing a client application for postgreSQL in Tcl/Tk (see http://gborg.postgresql.org/project/pfm ).
It mainly uses PgTcl or pgintcl. I don't have any problems with those, but I am also trying to call psql from my application for SQL statements typed directly by the user.
I have used the Tcl command
set psqlChannel [open "|psql $dbname" RDWR]
to create a channel that effectively becomes the input/output channel for psql. By writing to that channel, SQL statements are sent to psql, by reading from that channel, the results are received from psql.
That works fine, as long as psql does not prompt for a password. The problem is that psql does not use this channel for prompting for or reading the password. Instead, the password is prompted for on, and read from, the terminal from which the tcl application was started and that is not what I want, because the Tcl application has already received the password from the user. It is, as if psql does not use stdout and stdin for the password.
You need to look in the libpq section of the manuals. There is a PGPASSWORD environment variable, but that is deprecated. The preferred method is to create a ~/.pgpass file containing password information.
-- Richard Huxton Archonet Ltd
---------------------------(end of broadcast)--------------------------- TIP 2: you can get off all lists at once with the unregister command (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])