Just some other remarks on different syntax at least between Mysql and Oracle:
you have to think about the different syntax for outer joins for example:
Mysql:
SELECT ...
LEFT JOIN tab1 ON tab1.field1 = tab2.field2
Oracle:
SELECT ....
FROM tab1, tab2
WHERE tab1.field1(+) = tab2.field2
I think it is a hard job to make that DB independent.
At the moment my solution is:
switch $::_DB_TYPE {
mysql {
set outer_tabs "LEFT JOIN tab1 ON tab1.field1 = tab2.field2"
set outer_where ""
}
oracle {
set outer_tabs "tab1, tab2"
set outer_where "AND tab1.field1(+) = tab2.field2"
}
:
:
}
set sel_str "SELECT ... FROM .... $outer_tabs WHERE 1 = 1 $outer_where"
I wrote a Query class for DIO a while back (also not committed) that
would help with this. Basically, the way I ended up doing it was to
create different .query files for use in my application. So, I had a
mysql.query file and a postgres.query file that defined all of my
queries using the new Query class. Like so:
mysql.query:
Query FetchUsers -query "select users from user_table"
Query FetchPermissions -query "select permission from permission_table"
etc...
And then, with a similar file for Postgres. By also creating a
common.query file, I could put things in whose syntax was common to both
databases. Then, with the Query class and some new additions to DIO,
you can just do:
set result [DIO exec FetchUsers]
It was never finished though. The classes are done, but the exec
"magic" was never quite completed. It was mostly an experiment anyway.
I'll have to commit my work here soon and let others play around with
it. Maybe someone can pick up the torch and finish it.
Damon
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]