Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

OO4O Transactions: Updates not being rolled=back

0 views
Skip to first unread message

CJM

unread,
Sep 5, 2006, 12:41:20 PM9/5/06
to
I'm using OO4O via ASP to manipulate an Oracle 10g database (v10.1.0.4).

At the start of each vbScript section I'm starting off the transaction as
follows:

oDB.AutoCommit = False
oDB.BeginTrans

And at the end of the section, I have the following:

If iError > 0 then
oDB.RollbackTrans
Else
oDB.CommitTrans
End If

Pretty simple... but unfortunately it doesnt work.

All the help I can find only points to this code being correct... where am I
going wrong?

CJM


Niall Litchfield

unread,
Sep 24, 2006, 9:54:46 AM9/24/06
to

Can you show the full code? Have you checked the value of iError?

--

Niall Litchfield
Oracle DBA
http://www.orawin.info/services/

CJM

unread,
Sep 26, 2006, 9:19:12 AM9/26/06
to

"Niall Litchfield" <niall.li...@dial.pipex.com> wrote in message
news:r7SdnU-yZKO6E4vY...@pipex.net...

>>
>> At the start of each vbScript section I'm starting off the transaction as
>> follows:
>>
>> oDB.AutoCommit = False
>> oDB.BeginTrans
>>
>> And at the end of the section, I have the following:
>>
>> If iError > 0 then
>> oDB.RollbackTrans
>> Else
>> oDB.CommitTrans
>> End If
>>
>
> Can you show the full code? Have you checked the value of iError?
>

Niall,

The full code wouldnt be any more enlightening - I've sliced & diced the
code, including cutting it down to single call to a package, followed by an
enforced Rollback - but it didnt make any difference. Modifications to the
data persist after a rollback. The rollback doesnt fail (ie kicking out an
error), it just doesnt roll the data back to the starting point. I've
included the code that creates the Sessions/DB connections below

This same example was modified to use ADO instead of OO4O and the
transaction handling worked as expected.

CJM

-- Global.asa:

<object runat="Server" scope="Application" id="oSession"
progid="OracleInProcServer.XOraSession"></object>
<script runat="server" language="vbscript">
Sub Application_OnStart
oSession.CreateDatabasePool 2, 40, 200, "DB", "uid/pwd", 0
End Sub
</script>


-- Near the start of each ASP page:

Set oDB = oSession.GetDatabaseFromPool(10)
oDB.AutoCommit = False


0 new messages