Oracle Objects for OLE C++ Class Library
Release 9.0.1

Part Number A90172-01

Home

Book List

Contents

Master Index

Feedback

Commit Method

Applies To

OSession

Description

This method commits the current transaction.

Usage

oresult Commit(oboolean startnew = FALSE)

Arguments

startnew
If TRUE a new transaction is begun (as if BeginTransaction had been called).
If FALSE, no additional work is done after the transaction is committed.
Remarks

A database transaction is a way to group database operations so that they all either succeed or fail together. Please see Transactions for more details. You start a transaction with BeginTransaction. You terminate the transaction either with a Commit or a Rollback. It is an error to call Commit when no transaction is in progress.

Return Value

An oresult indicating whether the operation succeeded (OSUCCESS) or not (OFAILURE).

Example

This example starts a transaction and begins a long sequence of operations. If an error occurs along the way, all the changes are discarded with a Rollback. If they all succeed, all the changes are made permanent with a Commit.

// routine to give all employees the same salary

void Transfer(ODynaset empdyn, double salary)

{

// get the session of this dynaset

OSession empsess = empdyn.GetSession();

// start a transaction

empsess.BeginTransaction();

// edit every record (with StartEdit, SetFieldValue, Update)

empdyn.MoveFirst();

while (!empdyn.IsEOF())

{

if (empdyn.StartEdit() != OSUCCESS)

break;

if (empdyn.SetFieldValue("sal", salary) != OSUCCESS)

break;

if (empdyn.Update() != OSUCCESS)

break;

empdyn.MoveNext(); // go to the next record

}

if (!empdyn.IsEOF())

{ // we got out of the loop early. There must be a problem.

// Get rid of any changes we made

empsess.Rollback();

}

else

{ // everything worked, so make it all permanent

empsess.Commit();

}

return;

}


 
Oracle
Copyright © 1996-2001, Oracle Corporation.

All Rights Reserved.

Home

Book List

Contents