Updating data

After users have made changes to data in a DataWindow control, you can use the Update method to save those changes in the database.

In PowerBuilder, the code looks like this:

dw_emp.Update()

Update sends to the database all inserts, changes, and deletions made in the DataWindow control since the last Update method. When you are using an external transaction object, you can then commit (or roll back) those database updates. In PowerBuilder, you use SQL statements. In the Web ActiveX, you use methods and properties of the transaction object. In the Web DataWindow client control, update requests call the update method in the server component, which handles the commit or rollback.

For more specifics on how a DataWindow control updates the database (that is, which SQL statements are sent in which situations), see “Updating the database”.

Examples

The following example shows code that connects, retrieves, updates, commits or rolls back, and disconnects from the database.

Although the example shows all database operations in a single script or function, most applications separate these operations. In a PowerBuilder application, for example, an application could connect to the database in the application Open event, retrieve and update data in one or more window scripts, and disconnect from the database in the application Close event.

PowerBuilder The following statements retrieve and update data using the transaction object EmpSQL and the DataWindow control dw_emp:

// Connect to the database specified in the
// transaction object EmpSQL
CONNECT USING EmpSQL;

// Set EmpSQL as the transaction object for dw_emp
dw_emp.SetTransObject(EmpSQL)

// Retrieve data from the database specified in
// EmpSQL into dw_emp
dw_emp.Retrieve( )

// Make changes to the data...
...

// Update the database
IF dw_emp.Update( ) > 0 THEN	
		COMMIT USING EmpSQL;
ELSE	
		ROLLBACK USING EmpSQL;
END IF

// Disconnect from the database
DISCONNECT USING EmpSQL;

Web ActiveX The following JavaScript statements retrieve and update data using the transaction object EmpSQL and the DataWindow control dw_emp.

// Connect to the database specified in the
// transaction object EmpSQL
EmpSQL.Connect( );

// Set EmpSQL as the transaction object for dw_emp
dw_emp.SetTransObject(EmpSQL);

// Retrieve data from the database specified in
// EmpSQL into dw_emp
dw_emp.Retrieve( );

// Make changes to the data
...

// Update the database
if (dw_emp.Update( ) > 0) {
		EmpSQL.Commit( );
} else {
		EmpSQL.Rollback( );
}

// Disconnect from the database
EmpSQL.Disconnect( );

Handling retrieval or update errors

A production application should include error tests after each database operation.For more about checking for errors, see “Handling DataWindow errors”.