[Zope-DB] Wierd rollback problem in mxODBC DA
Charlie Clark
charlie at egenix.com
Fri Oct 22 05:17:52 EDT 2004
On 2004-10-22 at 10:57:08 [+0200], Philip Kilner <phil at xfr.co.uk> wrote:
> Hi Charlie,
>
> Blimey - that was quick!
Yes, well still recovering from cycling accident and a heavy cold this week
:-(
> Charlie Clark wrote:
> > this should have nothing to do with Zope as it is a single, valid SQL
> > statement (SELECT INTO), at least in theory. But what when parts of the
> > SELECT query don't match with the INSERT definition? The database should
> > give a nice integrity error at least.
> >
>
> Exactly - and in fact the view which is the source
> (V_QUAL_EREG_REG_VLD_DRIVER) is *very* heavily validated - anything
> which violates the requirements of an insert into
> T_CANDIDATE_REGISTRATION should never make it into that view in the
> first place.
>
> > From your original mail:
> > "On testing the ZSQL method in isolation, the results set returned the
> > appropriate number of records, complete with identity field data. On
> > reviewing the table, the records were not there but the counter for the
> > identity field indicated that the numbers in question had been allocated."
> >
>
> That's right: -
>
> - calling the ZSQL from a script failed (but incremented the identity
> "counter" by the number of records involved, indicating a roll-back (?).
Probably. The counter might be incremented automatically by the size of the
SELECT result set but this is implementation...
> - running the single ZSQL method on it's own exhibited the same
> behaviour - with the added feature of the entered records being returned
> by the select.
So, success as expected.
> - running the code from the ZSQL method as a stored procedure worked.
So, success as expected.
> I think it's reasonable to conclude that the issue is "downstream" of
> SQL Server, but I don't pretend to know where.
>
> > So testing in isolation does not do the INSERT either? This is definitely
> > on the DB side of things. What you need to do is as Marc-André has
> > suggested and run mxODBC in debugging mode via an ExternalMethod.
> >
>
> Agreed - problem is, I no longer have a failing batch to play with!
oh, no development system? Slapped wrists for you then!
Duplicate the database, remove all entries and start from scratch.
Charlie
--
Charlie Clark
eGenix.com
Professional Python Services directly from the Source
>>> Python/Zope Consulting and Support ... http://www.egenix.com/
>>> mxODBC.Zope.Database.Adapter ... http://zope.egenix.com/
>>> mxODBC, mxDateTime, mxTextTools ... http://python.egenix.com/
________________________________________________________________________
::: Try mxODBC.Zope.DA for Windows,Linux,Solaris,FreeBSD for free ! ::::
More information about the Zope-DB
mailing list