On Fri, 30 Jun 2000, Ron Bickers wrote:
It should be as simple as the application designer actually knowing what they're doing by knowing whether or not they're working with a table that supports transactions or not, and just not using BEGIN/COMMIT/ROLLBACK when they're not. Or is it too much to ask that designers know what they're doing? :-)
That's the problem: They don't get control over when BEGIN/COMMIT/ROLLBACK are used. Zope does that if you are using the Transaction Manager. And the only way to control use of the Transaction Manager is by selection of DA. That's why I think it may be necessary to have two ZMySQLDAs: One which is transactional and one which is not. However, they can both be part of the same distribution, and the transactional one can simply subclass the non-transactional one (mixing in the TM base and adding the required methods), so there is not a lot of code duplication. In addition, a lot of people are still going to be using MySQL-3.22, which does NOT support transactions, or even the BEGIN/COMMIT/ROLLBACK statements (these produce syntax errors). The only way to detect this at runtime is to look at the server's version. Anyway, more experimenting is needed. -- andy dustman | programmer/analyst | comstar.net, inc. telephone: 770.485.6025 / 706.549.7689 | icq: 32922760 | pgp: 0xc72f3f1d "Therefore, sweet knights, if you may doubt your strength or courage, come no further, for death awaits you all, with nasty, big, pointy teeth!"