[gambit-list] Oracle

Christian christian at pflanze.mine.nu
Wed Jan 25 15:12:02 EST 2006


At 20:14 Uhr +0100 25.01.2006, Christian wrote:
>I've written a quick DBI interface--see below.

I've noticed a problem: the number/false conversion doesn't accept 
the "0E0" string returned by DBI as "0 but true" value:

>  (define sth (dbh.prepare db "create table Foo (id int not null 
>auto_increment primary key, Text varchar(255)) type=innodb"))
>  (sth.execute sth)
*** ERROR IN (console)@21.1 -- Unknown error
(gperl#sv->number/false '#<SV* #2 0x8537B64>)
1>
>  (sv->string #2)
"0E0"

I've put a patch to the current gperl and to the p-dbi sent in my 
previous mail at this address:
http://scheme.mine.nu/gambit/downloads/gperl-and-p-dbi-20050225.patch
(I've also added a more verbose message to stderr for the above case. 
BTW: I should probably change all ".../false" type and 
conversion-function names to "maybe-...")

With this patch, after rebuilding gperl (bruse gperl) and dopping the 
Foo table (mysql> drop table Foo;) it now gives:

>  (sth.execute sth)
0
>  (sth.execute sth)
DBD::mysql::st execute failed: Table 'Foo' already exists.
#f
>  (define sth (dbh.prepare db "insert into Foo set Text=?"))
>  (sth.execute sth "Hello")
1
>  (sth.execute sth "World")
1

Cheers
Christian.



More information about the Gambit-list mailing list