|
|
|
|
|
- Network application (ISAM database)
- Locking records
- Error cases
- Temporary files created during the transaction (ISAM database)
- Handling records during a transaction
- Transactions and independent HFSQL context
- OLE DB and Native Connectors
HTransactionStart (Function) In french: HTransactionDébut
Not available with this kind of connection
Starts a transaction on the data files (HFSQL or accessed via a Native Connector) and creates the transaction file. What information is saved in the transaction file? Whenever a WLanguage function modifies a data file or an index file during a transaction, the former values of the record and the operation performed are stored in the transaction file. MyConnection1 is Connection  // Start transaction on data files associated with MyConnection1 HTransactionStart(MyConnection1)  // Code used to prepare the order to added // ...  WHEN EXCEPTION IN // Add the order HAdd(Orders) // Validate the addition HTransactionEnd(MyConnection1) DO // Delete the order lines HTransactionCancel(MyConnection1) END
// Start transaction on the Orders and OrdLine data files HTransactionStart("C:\Temp\Transaction.trs", "Orders,OrdLine,-Customer") Â // Code used to prepare the order to added // ... Â WHEN EXCEPTION IN // Add the order HAdd(Orders) // Validate the addition HTransactionEnd() DO // Delete the order lines HTransactionCancel() END
Syntax
Starting a Client/Server transaction on a specific connection Hide the details
<Result> = HTransactionStart(<Connection> [, <List of data files>])
<Result>: Boolean - True if the transaction was started,
- False if a problem occurs. HErrorInfo returns more details about the error.
<Connection>: Character string or Connection variable Name of connection to use. This connection corresponds to: If this parameter corresponds to the hAccessHF7 constant, the transaction will be performed on ISAM HFSQL files. <List of data files>: Optional character string List of logical names of one or more data files to take into account (or not) in the transaction (in this case, the data file name is preceded by the "-" sign). | | If this parameter is not specified | All data files used during the transaction will be taken into account in the transaction. | If all data files are prefixed with the "-" sign For example: "-Customer, -Product" | All data files specified in the list and used during the transaction will not be taken into account by the transaction. All data files not specified in the list will be taken into account and used during the transaction. | If no data file on the list is prefixed with the "-" sign For example: "Customer, Product" | All data files specified in the list and used during the transaction will be taken into account in the transaction. All data files not specified and manipulated during the transaction will be ignored in the transaction. | If some data files are prefixed with "-" and others are not For example: "-Customer, Product" (equivalent to "Product") | All data files in the list prefixed with "-" and used during the transaction will be ignored in the transaction. All data files in the list not prefixed with "-" and used during the transaction will be taken into account in the transaction. The files not specified in the list will be excluded from the transaction. |
Starting a Client/Server transaction on a specific connection or an ISAM transaction Hide the details
<Result> = HTransactionStart(<Connection> , <Transaction file> , <List of data files>)
<Result>: Boolean - True if the transaction was started,
- False if a problem occurs. HErrorInfo returns more details about the error.
<Connection>: Character string or Connection variable Connection to use. This connection corresponds to:If this parameter corresponds to an empty string ("") or to the hAccessHF7 constant, the transaction is performed on ISAM HFSQL data files. <Transaction file>: Character string <List of data files>: Character string List of logical names of one or more data files to take into account (or not) in the transaction (in this case, the data file name is preceded by the "-" sign). | | If this parameter is not specified | All data files used during the transaction will be taken into account in the transaction. | If all data files are prefixed with the "-" sign For example: "-Customer, -Product" | All data files specified in the list and used during the transaction will not be taken into account by the transaction. All data files not specified in the list will be taken into account and used during the transaction. | If no data file on the list is prefixed with the "-" sign For example: "Customer, Product" | All data files specified in the list and used during the transaction will be taken into account in the transaction. All data files not specified and manipulated during the transaction will be ignored in the transaction. | If some data files are prefixed with "-" and others are not For example: "-Customer, Product" (equivalent to "Product") | All data files in the list prefixed with "-" and used during the transaction will be ignored in the transaction. All data files in the list not prefixed with "-" and used during the transaction will be taken into account in the transaction. Data files not specified in the list will be excluded from the transaction. |
Starting an ISAM and/or Client/Server transaction on all the HFSQL Client/Server connections (existing ones or future ones) Hide the details
<Result> = HTransactionStart([<Transaction file> [, <List of files>]])
<Result>: Boolean - True if the transaction was started,
- False if a problem occurs. HErrorInfo returns more details about the error.
<Transaction file>: Optional character string <List of files>: Optional character string List of logical names of one or more data files to take into account (or not) in the transaction (in this case, the data file name is preceded by the "-" sign). | | If this parameter is not specified | All data files used during the transaction will be taken into account in the transaction. | If all data files are prefixed with the "-" sign For example: "-Customer, -Product" | All data files specified in the list and used during the transaction will not be taken into account by the transaction. All data files not specified in the list will be taken into account and used during the transaction. | If no data file on the list is prefixed with the "-" sign For example: "Customer, Product" | All data files specified in the list and used during the transaction will be taken into account in the transaction. All data files not specified and manipulated during the transaction will be ignored in the transaction. | If some data files are prefixed with "-" and others are not For example: "-Customer, Product" (equivalent to "Product") | All data files in the list prefixed with "-" and used during the transaction will be ignored in the transaction. All data files in the list not prefixed with "-" and used during the transaction will be taken into account in the transaction. Data files not specified in the list will be excluded from the transaction. |
Remarks Locking records The added, modified or deleted records in a transaction are locked in write mode. Error cases - Nesting transactions: Transactions cannot be nested (i.e. HTransactionStart cannot be called in 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".
Handling records during a transaction Transactions and independent HFSQL context When copying a context, if a transaction is in progress on the first context, the new context is not in transaction. You must call HTransactionStart to start a transaction in the new context.
This page is also available for…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|