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

Reply via email to