|
|
|
|
|
- Location and access to data files
- Detecting an error
- Tip: Restoring the consistency of the database
- Error cases
- Transactions and independent HFSQL context
- OLE DB and Native Connectors
<Connection variable>.TransactionCancel (Function) In french: <Variable Connexion>.TransactionAnnule
Not available with this kind of connection
If a transaction is in progress, cancels all the operations performed on the data files in transaction since the start of transaction. In this case, the transaction is canceled without interrupting the program execution. If no transaction is in progress, restores database consistency and rolls back a failed transaction (e.g. in the event of a power failure).. Note: A failed transaction can be rolled back by any program.. The transaction file is automatically destroyed if it is not shared. The records locked by the write operations performed during the transaction are unlocked. Note The <Source>.TransactionFree function transforms all records "in transaction" into "normal" records if they do not belong to a transaction currently in progress.
MyConnection is Connection
MyConnection.TransactionStart()
Add_Order()
WHEN EXCEPTION IN
Order.Add()
MyConnection.TransactionEnd()
DO
MyConnection.TransactionCancel()
END
Syntax
Canceling a current transaction or an interrupted transaction on a Client/Server connection Hide the details
<Result> = <Connection>.TransactionCancel()
<Result>: Boolean - True if the transaction was canceled,
- False if a problem occurs. HErrorInfo returns more details about the error.
Caution: - If a transaction is in progress on the connection, it is canceled.
- If no transaction is in progress, the interrupted transactions are canceled for the specified connection.
<Connection>: Connection variable Name of the Connection variable that describes the connection to use.
Canceling an interrupted transaction on a Client/Server database (to be used if no transaction is in progress) Hide the details
<Result> = <Connection>.TransactionCancel(<Database>)
<Result>: Boolean - True if the transaction was canceled,
- False if a problem occurs. HErrorInfo returns more details about the error.
Caution: - Only the interrupted transactions on the specified database are canceled.
- The transactions in progress are not canceled.
<Connection>: Connection variable Name of the Connection variable that describes the connection to use. <Database>: Character string Name of the relevant database. An error occurs if this parameter corresponds to an empty string ("").
Canceling a specific transaction, linked to a connection Hide the details
<Result> = <Connection>.TransactionCancel(<Transaction to cancel>)
<Result>: Boolean - True if the transaction was canceled,
- False if a problem occurs. HErrorInfo returns more details about the error.
Warning: Only interrupted transactions on the specified database are rolled back.
<Connection>: Connection variable Name of the Connection variable that describes the connection to use. <Transaction to cancel>: Integer Identifier of transaction that will be canceled for the specified connection. This identifier is returned by <Connection variable>.TransactionList. Remarks Location and access to data files Before calling <Connection variable>.TransactionCancel, the data files handled by the canceled transaction must be: Detecting an error When an error is detected by the program (management of errors with WHILE EXCEPTION for example), <Connection variable>.TransactionCancel is used to: Tip: Restoring the consistency of the database If a breakdown (power outage, reboot, ...) occurs during a transaction, the data files may become corrupted: the transaction was neither validated nor canceled. The transaction file is still found on the computer. To restore the consistency of the database, you should propose in your application: Note: this operation can take a relatively long time (depending on the number of transactions performed). Error cases - Transaction nesting: it is not possible to nest transactions (i.e. to call function <Connection variable>.TransactionStart or function <Connection variable>.Transaction within a transaction).. In this case, error 70031 occurs.
- A fatal error is displayed in the following cases:
- A transaction is started on all the connections while there is at least one connection in transaction.
- A transaction is started on a connection while a transaction was already started on all the connections.
- A transaction is started on all the connections while there is at least one connection whose isolation level is not "Read Uncommitted".
Transactions and independent HFSQL context
This page is also available for…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|