Difference between revisions of "BEGIN TRANSACTION"
Yvonnemilne (Talk | contribs) |
Helengeorge (Talk | contribs) (→Products) |
||
(7 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==Purpose== | ==Purpose== | ||
Begin transaction Before Image Journaling | Begin transaction Before Image Journaling | ||
Line 19: | Line 12: | ||
==See Also== | ==See Also== | ||
− | [[COMPLETED()]], [[ISMARKED()]], [[RESET IN]], [[ROLLBACK]], [[ROLLBACK()]], [[SET ROLLBACK]] | + | [[COMPLETED()]], [[END TRANSACTION]], [[ISMARKED()]], [[RESET IN]], [[ROLLBACK]], [[ROLLBACK()]], [[SET ROLLBACK]] |
Line 25: | Line 18: | ||
The BEGIN TRANSACTION command is used to flag the beginning of a transaction for Before Image Journaling (BIJ). A 'transaction' consists of all file modifications that occur within the commands BEGIN TRANSACTION and END TRANSACTION. | The BEGIN TRANSACTION command is used to flag the beginning of a transaction for Before Image Journaling (BIJ). A 'transaction' consists of all file modifications that occur within the commands BEGIN TRANSACTION and END TRANSACTION. | ||
− | When BEGIN TRANSACTION is issued all currently open files and all files opened between BEGIN and END TRANSACTION will have BIJ invoked automatically. If BIJ is not required on a particular table then the RESET IN command should be issued for the relevant workarea so that journaling will no longer occur in that workarea. The journals are stored in a log file (with a file extension of '.log | + | When BEGIN TRANSACTION is issued all currently open files and all files opened between BEGIN and END TRANSACTION will have BIJ invoked automatically. If BIJ is not required on a particular table then the RESET IN command should be issued for the relevant workarea so that journaling will no longer occur in that workarea. The journals are stored in a log file (with a file extension of '.log') which the Recital/4GL generates automatically. You can optionally specify the disk and directory <path name> where the log file will be stored when the BEGIN TRANSACTION command is issued. |
A "rollback" causes record contents to be restored to their value before modification (i.e. at the time BEGIN TRANSACTION was issued). This is particularly useful if an error occurs during a program that modifies files. | A "rollback" causes record contents to be restored to their value before modification (i.e. at the time BEGIN TRANSACTION was issued). This is particularly useful if an error occurs during a program that modifies files. | ||
Line 35: | Line 28: | ||
Please note that the following commands are not allowed during a transaction: | Please note that the following commands are not allowed during a transaction: | ||
− | *CLEAR ALL | + | |
− | *CLOSE ALL | + | *[[CLEAR ALL]] |
− | *CLOSE | + | *[[CLOSE ALL]] |
− | *CLOSE INDEX | + | *[[CLOSE DATABASES]] |
− | *MODIFY STRUCTURE | + | *[[CLOSE INDEX]] |
− | *PACK | + | *[[MODIFY STRUCTURE]] |
− | *ZAP | + | *[[PACK]] |
+ | *[[ZAP]] | ||
Line 47: | Line 41: | ||
<code lang="recital"> | <code lang="recital"> | ||
procedure recovery | procedure recovery | ||
+ | |||
rollback | rollback | ||
if rollback() | if rollback() | ||
− | dialog box "Rollback was ok." | + | dialog box "Rollback was ok." |
else | else | ||
− | dialog box "Rollback not completed." | + | dialog box "Rollback not completed." |
endif | endif | ||
+ | |||
return | return | ||
Line 58: | Line 54: | ||
on error do recovery | on error do recovery | ||
begin transaction | begin transaction | ||
− | delete first 15 | + | delete first 15 |
− | insert | + | insert |
− | replace all t1 with (t2*t3)/100 | + | replace all t1 with (t2*t3)/100 |
− | list | + | list |
end transaction | end transaction | ||
if completed() | if completed() | ||
− | dialog box "Transaction completed" | + | dialog box "Transaction completed" |
else | else | ||
− | dialog box "Errors occurred during transaction" | + | dialog box "Errors occurred during transaction" |
endif | endif | ||
</code> | </code> | ||
Line 72: | Line 68: | ||
==Products== | ==Products== | ||
− | Recital | + | Recital Server, Recital |
[[Category:Documentation]] | [[Category:Documentation]] | ||
[[Category:Commands]] | [[Category:Commands]] | ||
+ | [[Category:Transaction Processing]] | ||
+ | [[Category:Transaction Processing Commands]] |
Latest revision as of 14:36, 10 November 2009
Purpose
Begin transaction Before Image Journaling
Syntax
BEGIN TRANSACTION [<path name>]
<commands>
END TRANSACTION
See Also
COMPLETED(), END TRANSACTION, ISMARKED(), RESET IN, ROLLBACK, ROLLBACK(), SET ROLLBACK
Description
The BEGIN TRANSACTION command is used to flag the beginning of a transaction for Before Image Journaling (BIJ). A 'transaction' consists of all file modifications that occur within the commands BEGIN TRANSACTION and END TRANSACTION.
When BEGIN TRANSACTION is issued all currently open files and all files opened between BEGIN and END TRANSACTION will have BIJ invoked automatically. If BIJ is not required on a particular table then the RESET IN command should be issued for the relevant workarea so that journaling will no longer occur in that workarea. The journals are stored in a log file (with a file extension of '.log') which the Recital/4GL generates automatically. You can optionally specify the disk and directory <path name> where the log file will be stored when the BEGIN TRANSACTION command is issued.
A "rollback" causes record contents to be restored to their value before modification (i.e. at the time BEGIN TRANSACTION was issued). This is particularly useful if an error occurs during a program that modifies files.
If SET ROLLBACK is ON, the Recital/4GL will automatically execute the ROLLBACK command if an error occurs during the transaction process. Otherwise, error trapping should be handled manually using the ON ERROR command.
The COMPLETED() function can be used after the END TRANSACTION command to determine if any errors occurred during processing of the commands between BEGIN and END TRANSACTION.
Please note that the following commands are not allowed during a transaction:
Example
procedure recovery rollback if rollback() dialog box "Rollback was ok." else dialog box "Rollback not completed." endif return use accounts on error do recovery begin transaction delete first 15 insert replace all t1 with (t2*t3)/100 list end transaction if completed() dialog box "Transaction completed" else dialog box "Errors occurred during transaction" endif
Products
Recital Server, Recital