Hi Karl,

I have played a little bit with the Session and DIO package together with 
MySQL and Oracle database.

There were some problems, where I have made some modifications to the packages 
to have them working now.

MySQL and/or Oracle have problems with database table field names "key" and 
"package". I have them renamed to "key_" and "package_".

MySQL and Oracle do not know the special token "now". To avoid that and to 
have the possibility to have special handling for some database fields I have 
added a method registerSpecialField and makeDBFieldValue to dio.tcl and 
dio_Mysql.tcl. For other database interfaces than MySQL they do not harm, in 
the "normal" case they just do, what the code did before. For that I have 
replace every occurance of "'[quote $val]'" by a call "[makeDBFieldValue 
$myTable $field $val]". 

In Module dio.tcl makeDBFieldvalue just returns "'[quote $val]'", same in 
dio_Mysql.tcl, if no special type is registered.

For each table/field combination a special type can be registered using 
registerSpecialField. 

I have added the following types for dio_Mysql:
- DATE
- DATETIME

They handle the special syntax for the date fields. DATETIME also looks if it 
is the special string "now" and handles that appropriate.

makeDBFieldValue is extensible for other special cases.

I have also prepared the create-/delete scripts for MySQL and Oracle for the 
session tables.

I have tested in my environment with MySQL and it is working now. For Oracle 
the tables can be created and I am preparing a dio_Oracle.tcl module which is 
working together with oratcl.

There were also some modifications for the md5 call because I had some 
problems if the key started with a "-" sign and I also use the newer -hex 
option to avoid problems in sending the session id as cookie (otherwise you 
get a binary key back).

If you are interested to integrate these changes into the official version, 
please let me know (I used rivet0.7.0 windows) for my changes.

Cheers,
Arnulf

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to