Asad Habib wrote at 2004-5-13 13:34 -0400:
Hello. Thanks for your input. All I am doing is inserting a record into a table and as far as I know, this is not considered to be a transaction. A transaction would consist of multiple SQL statements whose execution would either be successsfull or unsuccessfull(hence the need to either commit or rollback). The funny thing is that I can insert a record using this same ZSQL method while attempting to test it via the ZMI. However, when called from a DTML method, the NotSupportedError still occurs. Suggestions anyone?
This indicates some error during the DTML processing. This errors raises an exception. This triggers that Zope want to abort its transaction which aborts the transactions in all connections. And one of these connections, the MySQL connection, raises a secondary error informing about the impossible to abort the transaction. What you see here is an impedance mismatch between Zope and MySQL: Zope has a transaction concept and it wants to perform all actions during a request in a single transaction: ZODB modifications, relational database modifications. However, MySQL cannot fulfill its responsibilities in the Zope framework. As I already suggested: * either use "innodb" tables (which should have transactional behaviour (according to documentation)) * or disable the error report (telling the connection, it should behave non-transactional without warning). -- Dieter