On Fri, Jan 30, 2004 at 03:11:05PM +0000, Harry Jackson wrote:
>
> .pcc_sub _MAIN prototyped
> .param pmc argv
> .include "/home/parrot/dbdi/lib/dbdi/dbdi_header.imc"
>
> .sym pmc dbh
> .sym string dbstring
> dbstring = "host=lhost dbname=name user=user password=pass"
> .sym string dbh_name
> dbh_name = "dbh"
> .pcc_begin prototyped
> .arg dbstring
> .arg dbh_name
> .pcc_call connect
> retconnect:
> .result dbh
> .pcc_end
> print "New $dbh successful????\n"
I don't see the need for this naming. Why not just do:
.sym string dbstring
dbstring = "host=lhost dbname=name user=user password=pass"
.sym pmc dbh1
.sym pmc dbh2
.pcc_begin prototyped
.arg dbstring
.pcc_call connect
retconnect:
.result dbh1
.pcc_end
.pcc_begin prototyped
.arg dbstring
.pcc_call connect
retconnect:
.result dbh2
.pcc_end
?
> # Now that we have a $dbh we can pass it into
> # the prepare funtion with the SQL statement.
> # We must also name our statement handle which
> # allows us to have multiple statement handles
> # per dbh object. Name collisions are being
> # checked. We also check to make sure that the
> # dbh that is passed in is valid otherwise we
> # abort.
> .sym pmc sth
> .sym string sql
> sql = "select * from parrot"
> .sym string sth_name
> sth_name = "sth"
>
> .pcc_begin prototyped
> .arg dbh_name
> .arg sth_name
> .arg sql
> .pcc_call prepare
> retprepare:
> .result sth
> .pcc_end
That needs to be more like this:
.sym string sql
sql = "select * from parrot"
.sym pmc sth1
.pcc_begin prototyped
.arg dbh1
.arg sql
.pcc_call prepare
retprepare:
.result sth1
.pcc_end
No dbh name, no sth name. They're not needed and not in the spec.
Am I missing something?
The returned sth thingy holds a copy (ref) of its parent dbh.
Tim.