SQL/MX 2.x Reference Manual (H06.04+)

SQL/MX Statements
HP NonStop SQL/MX Reference Manual540440-003
2-26
C Examples of BEGIN WORK
INSERT INTO sales.odetail VALUES (125, 4102, 25000, 2);
--- 1 row(s) inserted.
UPDATE invent.partloc SET qty_on_hand = qty_on_hand - 2
WHERE partnum = 4102 AND loc_code = 'G45';
--- 1 row(s) updated.
--- This statement ends a transaction.
COMMIT WORK;
--- SQL operation complete.
C Examples of BEGIN WORK
Begin a transaction, execute an UPDATE statement, and test SQLSTATE. If the
UPDATE is successful, the database changes are committed. Otherwise, the
database changes are rolled back:
...
char SQLSTATE_OK[6] = "00000";
EXEC SQL BEGIN DECLARE SECTION;
char SQLSTATE[6];
...
EXEC SQL END DECLARE SECTION;
...
EXEC SQL BEGIN WORK; /* Start a transaction. */
...
EXEC SQL UPDATE ... ; /* Change the database. */
...
if (strcmp(SQLSTATE, SQLSTATE_OK) == 0)
EXEC SQL COMMIT WORK; /* Commit the changes. */
else
EXEC SQL ROLLBACK WORK; /* Roll back the changes. */
COBOL Examples of BEGIN WORK
Begin a transaction, execute an UPDATE statement, and test SQLSTATE. If the
UPDATE is successful, the database changes are committed. Otherwise, the
database changes are rolled back:
...
01 SQLSTATE-OK PIC X(5) VALUE "00000".
EXEC SQL BEGIN DECLARE SECTION END-EXEC.
01 SQLSTATE PIC X(5).
...
EXEC SQL END DECLARE SECTION END-EXEC.
...
* Start a transaction.
EXEC SQL BEGIN WORK END-EXEC.
...
* Change the database.
EXEC SQL UPDATE ... END-EXEC.
...
* Commit or roll back the changes.
IF SQLSTATE = SQLSTATE-OK