A Multi-transaction Example
From InterBase
Go Up to Working with Multiple Transactions
The following C code illustrates the steps required to create a simple multi-transaction program. It declares two transaction handles, mytrans1
, and mytrans2
, initializes them to zero, starts the transactions, and then uses the transaction names to qualify the data manipulation statements that follow. It also illustrates the use of a cursor with a named transaction.
. . . EXEC SQL BEGIN DECLARE SECTION; long *mytrans1 = 0L, *mytrans2 = 0L; char city[26]; EXEC SQL END DECLARE SECTION; . . . EXEC SQL DECLARE CITYLIST CURSOR FOR SELECT CITY FROM CITIES WHERE COUNTRY = 'Mexico'; EXEC SQL SET TRANSACTION NAME mytrans1; EXEC SQL SET TRANSACTION mytrans2 READ ONLY READ COMMITTED; . . . printf("Mexican city to add to database: "); gets(city); EXEC SQL INSERT TRANSACTION mytrans1 INTO CITIES VALUES :city, 'Mexico', NULL, NULL, NULL, NULL; EXEC SQL COMMIT mytrans1; EXEC SQL OPEN TRANSACTION mytrans2 CITYLIST; EXEC SQL FETCH CITYLIST INTO :city; while (!SQLCODE) { printf("%s\n", city); EXEC SQL FETCH CITYLIST INTO :city; } EXEC SQL CLOSE CITYLIST; EXEC SQL COMMIT mytrans2; EXEC SQL DISCONNECT . . .