When the DataWindow control uses internal transaction management, it handles connecting, disconnecting, commits, and rollbacks. It automatically performs connects and disconnects as needed; any errors that occur cause an automatic rollback.
Whenever the DataWindow needs to access the database (such as when a Retrieve or Update method is executed), the DataWindow issues an internal CONNECT statement, does the appropriate data access, then issues an internal DISCONNECT.
If the number of available connections at your site is limited, you might want to use internal transaction management because connections are not held open.
Internal transaction management is appropriate in simple situations when you are doing pure retrievals (such as in reporting) and do not need to hold database locks—when application control over committing or rolling back transactions is not an issue.
Do not use internal transaction management when:
Your application requires the best possible performance
Internal transaction management is slow and uses considerable system resources because it must connect and disconnect for every database access.
You want control over when a transaction is committed or rolled back
Because internal transaction management must disconnect after a database access, any changes are always committed immediately.
To use internal transaction management, you specify connection values for a transaction object, which could be the automatically instantiated SQLCA. Then you call the SetTrans method, which copies the values from a specified transaction object to the DataWindow control's internal transaction object.
SQLCA.DBMS = ProfileString("myapp.ini", &
"database", "ODBC", " ")
... // Set more connection parameters
dw_employee.SetTrans(SQLCA)
dw_employee.Retrieve( )
Connecting to the database When you use SetTrans, you do not need to explicitly code a CONNECT or DISCONNECT statement in a script. CONNECT and DISCONNECT statements are automatically issued when needed.
For more information about transaction objects, see Chapter 16, “Using Transaction Objects.”