[Zope] Strange problem with ZMySQLDA
Andy Dustman
andy@dustman.net
Fri, 6 Jul 2001 13:47:12 -0400 (EDT)
On Thu, 5 Jul 2001, Kevin L wrote:
> I get the following error when calling a Z SQL Method within a
> <dtml-in> tag:
>
> Warning: Some non-transactional changed tables couldn't be
> rolled back
>
> For example:
>
> <dtml-in "_.range(0,5)">
> <dtml-call "insert_rec(num=sequence-number)">
> </dtml-in>
>
> The method just inserts one row into a table. Calling it on it's
> own works fine, as does executing it via the "Test" function.
> But calling it from inside <dtml-in> always gives the error.
>
> According to the mysql log file it runs the query (althoug the
> record does not get inserted) and then does a ROLLBACK (why???).
I'll have to guess that:
a) You are using ZMySQLDA-2.0.7 (or possibly .6).
b) Your MySQL server supports BDB tables or InnoDB tables (perhaps a
MySQL-Max package).
c) You are using MyISAM tables, which don't support transactions.
In this case, prefix your connection string with a dash, i.e.
-db@host user password
This will disable transactions (ZMySQLDA-2.0.7 and up). ZMySQLDA-2.0.7
automatically senses if the server can use transactions, and if so,
ties into Zopes Transaction Manager. The dash tells it not to do this. A
plus will force it to try to use transactions, and an exception will be
raised if this is not possible.
--
Andy Dustman PGP: 0xC72F3F1D
@ .net http://dustman.net/andy
I'll give spammers one bite of the apple, but they'll
have to guess which bite has the razor blade in it.