[Zope-DB] Wierd rollback problem in mxODBC DA

Charlie Clark charlie at egenix.com
Fri Oct 22 04:41:58 EDT 2004


Hm, Hi Phil,

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.

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

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.

Charlie

On 2004-10-22 at 10:23:14 [+0200], Philip Kilner <phil at xfr.co.uk> wrote:
> Hi Matthew,
> 
> Matthew T. Kromer wrote:
> > if I had to guess at it, I'd think you're seeing some kind of
> > glitch in your actual database, most likely having to do with how
> > independent transactions view each other when run concurrently.
> > 
> 
> Hmmm...but the identical code to that produced by the ZSQL query
> template, when run cut and pasted into a stored procedure, executed as
> intended.
> 
> > You didn't list your target database type, nor your code, so I cant
> > guess any further.
> > 
> 
> I did, in fact - it's MS SQL Server.
> 
> The ZSQL Method reads: -
> 
> INSERT INTO dbo.T_CANDIDATE_REGISTRATION(
>            CreateGUID,
>            Forenames,
>            Surname,
>            DateOfBirth,
>            Gender,
>            EthnicGroup,
>            OrgID,
>            AwardID,
>            CentreCandidateRef,
>            SpecialAssessment
>            )
> SELECT    TransactionRef,
>            Forenames,
>            Surname,
>            IsoDoB,
>            Gender,
>            CorrectedEthnicGroup,
>            AsetCentreRef,
>            AwardID,
>            CentreCandidateRef,
>            SpecialAssessBit
> FROM      dbo.V_QUAL_EREG_REG_VLD_DRIVER
> WHERE     (RegBatchID = <dtml-sqlvar RegBatchID type="int">) AND
>            (BatchResultSource = 'Accepted')
> 
> As you can see it's very simple, the selection is based on "RegBatchID"
> - only this batch has been an issue as a ZSQL method, but it ran fine as
> an SP.
-- 
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