Internal transaction management

What it does

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.

Whether to use it

When not to use it Do not use internal transaction management when:

When to use it 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.

How it works

PowerBuilder 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", "DBMS", " ")
... // Set more connection parameters
dw_employee.SetTrans(SQLCA)
dw_employee.Retrieve( )

NoteConnecting 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 PowerBuilder transaction objects, see PowerBuilder Application Techniques.

Web ActiveX To use internal transaction management, set the transaction properties for the DataWindow Web ActiveX control instead of using a DataWindow Transaction Object control. You can set the properties using Param elements or in a script. This example sets the DbParm property and calls Retrieve in a script:

dw_employee.DbParm =
		"Driver='com.sybase.jdbc3.jdbc.SybDriver',
		URL='jdbc:sybase:Tds:www.domain.com:7373'";
dw_employee.Retrieve( );

For internal transaction management, you do not call SetTransObject. If you change the DataWindow object during execution, the connection information is still available and the DataWindow connects as needed. You can change the connection information by changing the value of the DbParm property.