Simplicty and flexibility!


Support::

Commit


Parameters


Returns/Result


Examples


Reference

commit

image\Dql_0025.gifcommit

Type

Procedural Command

Purpose

The commit command is used to mark the end of a transaction. A procedure can contain any number of commit commands.

Syntax

commit .

A transaction can be all or any part of a DQL Procedure that changes data and must be processed as a single unit to maintain integrity (such as a procedure that transfers money from a customer's savings account into his/her checking account). When accessing data in an SQL database, DataEase usually treats a DQL Procedure as a single transaction by default and commits all the changes made to the data simultaneously at the end of the procedure. When you're running a shared application on a network, treating a whole procedure as a single transaction may reduce concurrency. For this reason, DataEase provides the tran off command (to turn transactions off) and the commit command to divide a procedure into several smaller transactions.

Usage

The commit command is used with the begin transaction command to divide a procedure into several transactions. By defining separate transactions within a DQL Procedure, it's possible to rollback any partially completed changes that leave data in an inconsistent state and to recover from system or user-generated errors.

A commit command can be used anywhere in a procedure. When DataEase converts a script into SQL, the position of a commit command in the script determines how DataEase processes it. If the commit command is outside a for loop or conditional statement, DataEase translates the DQL commit into an SQL COMMIT command (this commits all changes made to the data since the last commit or begin transaction command was processed). If the commit is inside a for loop or conditional statement, DataEase inserts the SQL SAVEPOINT command.

The commit command is often followed by a conditional statement that uses the current status, current SQLCODE, or current SQLCOUNT variable to determine if the preceding transaction was committed successfully (see Example 2).

Example 1

for RESERVATIONS ;

begin transaction

modify records

TOTAL DUE := TOTAL DUE - AMOUNT PAID .

commit .

If DEPARTURE DATE < current date - 90 then

begin transaction

modify records

TOTAL DUE := TOTAL DUE * LATE PENALTY .

commit .

end

end

 

This procedure contains two transactions. The first transaction modifies the RESERVATIONS records by subtracting the AMOUNT PAID from the TOTAL DUE. The second transaction modifies the records of past due accounts (that is, reservations that are not paid 90 days after the RESERVATION DATE) by multiplying the TOTAL DUE by a LATE PENALTY factor. Each transaction is committed as it is completed. The commit commands tell DataEase to post the changes in the appropriate table on the server and then continue processing the procedure.

Example 2

for RESERVATIONS ;

begin transaction

modify records in CLUB ROOMS with

( CLUB ID = RESERVATIONS CLUB ID and

RESERVATION DATE = RESERVATIONS RESERVATIONDATE)

VACANCIES := VACANCIES - ROOMSREQUESTED .

commit .

if current SQLCODE not = 0 then

message " Last transaction was unsuccessful.

See Also


On the forum about Commit

[@EOF@]...

Product: . Written by alembagheri tahmas 07/12/13 at 13:37:32

Hi there,I am trying to use an external MySQL DB in dataease. I have successfully create the ODBC link and added the DB to dataease. I can also access the DB from dataease. Now, just for testing purposes, I am trying to create a simple report b...

Product: DataEase for Windows 7.x. Written by George Washington 11/04/14 at 08:26:17

no se pude exportar ahora archivos a pdf, ni a excel o otros cosa mala. en verdad creo que hace faltaen las versiones anteriores me funcionaba mas o menos bien.&nbsp;le hace falta a los aplicativos que se desarrollan en Dataeasegr...

Product: DataEase 8 Reporter. Written by eduardo paez 02/05/14 at 14:40:11

Thanks. Anyway I'm trying to use this fuction but it seems to me that it doesn't work on 8.2. I tried also in a DQL.There's something wrong?<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA9IAAAJ3CAYAAAB4NWk3AAAAAXNSR0IArs4...

Product: . Written by Marco Marchesi 15/02/16 at 14:50:46

[@EOF@]...

Product: Dataease [{8}]FIVE. Written by Chamil Rajindra 21/02/19 at 10:17:46

Thanks for the very good explanation!AS...

Product: . Written by afonso santos 28/10/19 at 00:50:14

I am pleased to see that the migration from Dos 4.53 is then sa 5.5 works. A really useful thing would be a compiler of SQL languages. Will you get there?Original Text:Mi compiaccio a vedere che la migrazione da Dos 4.53 è poi sa 5.5 funzio...

Product: . Written by Grossi Gioacchino 18/11/19 at 14:33:44

How can i delete a Style sheet?...

Product: Dataease [{8}]FIVE. Written by Rainer 22/03/21 at 11:13:10

I run W7 and since a few days&nbsp;Dataease 8.5 is not starting any more, do you have an idea? i installed it again but that did not help....

Product: Dataease [{8}]FIVE. Written by Rainer 08/06/21 at 14:12:40

[@EOF@]...

Product: . Written by Hiralal Rampul 01/12/21 at 17:47:10

On the blog about Commit


dg3_HelpView