Hi Matteo
Help form pgtcl.html PostgreSQL 7.1 Programmer's Guide
This is an example :
load libpgtcl.so
namespace eval ::db {
if {![info exists conninfo]} {
array set conninfo {
dbname template1
host localhost
port 5432
user postgres
password postgres
}
}
variable lastcols {}
variable conn_example {dbname db1 host dezv port 5432 user dbuser
password wp}
}
proc ::db::db {sql {sqlerr {db_err}}} {
upvar 1 $sqlerr err
set toR {}
set res {}
set status {no status}
if {[catch {
set res [pg_exec [gethandle] $sql]
set status [pg_result $res -status]
set err [pg_result $res -error]
if {$status=="PGRES_COMMAND_OK" ||
$status=="PGRES_TUPLES_OK"} {
set lastcols [pg_result $res -attributes]
set nTuples [pg_result $res -numTuples]
for {set ntuple 0} {$ntuple<$nTuples} {incr ntuple} {
lappend toR [pg_result $res -getTuple $ntuple]
}
}
} errorMessage]} {
set err $errorMessage
return {}
}
pg_result $res -clear
return $toR
}
proc ::db::lastcols {} {
variable lastcols
return $lastcols
}
proc ::db::dbqs { value } {
regsub -all "'" $value "''" value
regsub -all {\B} $value {\\\\} value
return "'$value'"
}
proc ::db::gethandle {} {
variable db_handle
if {[info exists db_handle]} {
return $db_handle
}
error "no db handle"
}
proc ::db::disconnect {} {
variable db_handle
catch {pg_disconnect $db_handle}
catch {unset db_handle}
}
proc ::db::connect {} {
disconnect
variable db_handle [pg_connect -conninfo [getconninfo]]
return $db_handle
}
proc ::db::conninfo {args} {
variable conninfo
foreach {key val} $args {
set conninfo($key) $val
}
}
proc ::db::getconninfo {} {
variable conninfo
set toR {}
foreach key {dbname host port user password} {
lappend toR "${key}=$conninfo($key)"
}
return [join $toR " "]
}
Usage:
::db::conninfo ?key val?
or en example:
eval ::db::conninfo $::db::conn_example
::db::connect
::db::db sql_commmand
--
Petrica Clement Chiriac
Web application developer
Genesys Software Romania
http://dev.genesys.ro
_______________________________________________
vtcl-user mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/vtcl-user