[Zope] Mysterious Database Error

Asad Habib ahabib at engin.umich.edu
Thu May 13 13:34:23 EDT 2004


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?

- Asad

On Wed, 12 May 2004, Dieter Maurer wrote:

> Asad Habib wrote at 2004-5-12 10:32 -0400:
> >Hello, I am trying to add a record to a MySQL database using a Z SQL
> >method. The Z SQL method works fine and I have tested it by itself. Also,
> >when called from a DTML method the Z SQL method adds the record to the
> >database but Zope returns the following error:
> > ...
> >*	Module Shared.DC.ZRDB.TM, line 63, in abort
> >*	Module Products.ZMySQLDA.db, line 328, in _abort
> >
> >NotSupportedError: (1196, "Warning: Some non-transactional changed tables
> >couldn't be rolled back")
>
> This is not mysterious at all:
>
>   The standard MySQL tables do not support transactions (there
>   are "inno"db tables that do).
>
>   Your request was aborted and Zope wanted to tell
>   MySQL to rollback the transaction (and undo the changes
>   done in this request).
>   This is not possible (with standard tables).
>   You get informed about this failure.
>
> There is a way to suppress this error report.
> I think (though I am not sure) that prefixing the
> connect string with "-" does this.
> Of course, MySQL does not learn aborts by this.
> It is just that the problem report is suppressed.
>
>
> The cleaner way is to use transactional tables or
> a different database system....
>
>
> --
> Dieter
>



More information about the Zope mailing list