Even with a different DB you can still use the modx api to call your database. The document parser class has a few fucntions for this, at least it did last time I looked

(RC3)
getExtTableRows($host, $user, $pass, $dbase, $fields, $from, $where, $sort, $dir, $limit);
putExtTableRow($host, $user, $pass, $dbase, $fields, $into) (for inserts)
updExtTableRow($host, $user, $pass, $dbase, $fields, $into, $where, $sort, $dir, $limit)
I’ve never used them myself so I don’t know if they have the same problem you mentioned but it’s worth having a look at them. Browse through the parser source to find out the format of each parameter.
It’s good practice to use the API whenever possible especially if you are thinking of sharing your snippet with the community.