[Zope-DB] Wierd rollback problem in mxODBC DA

Philip Kilner phil at xfr.co.uk
Fri Oct 22 04:57:08 EDT 2004


Hi Charlie,

Blimey - that was quick!

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 (?).

- 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.

- running the code from the ZSQL method as a stored procedure worked.

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!

-- 

Regards,

PhilK

Email: phil at xfr.co.uk / Voicemail & Facsimile: 07092 070518

"Work as if you lived in the early days of a better nation." - Alasdair Gray


More information about the Zope-DB mailing list