DBError

Description

Occurs when a database error occurs in the DataWindow or DataStore.

PowerBuilder event information Event ID: pbm_dwndberror

Argument

Description

sqldbcode

Long by value. A database-specific error code.

See your DBMS documentation for information on the meaning of the code.

When there is no error code from the DBMS, sqldbcode contains one of these values:

  • -1 – Cannot connect to the database because of missing values in the transaction object.

  • -2 – Cannot connect to the database.

  • -3 – The key specified in an Update or Retrieve no longer matches an existing row. This can happen when another user has changed the row after you retrieved it.

  • -4 – Writing a blob to the database failed.

sqlerrtext

String by value. A database-specific error message.

sqlsyntax

String by value. The full text of the SQL statement being sent to the DBMS when the error occurred.

buffer

DWBuffer by value. The buffer containing the row involved in the database activity that caused the error.

For a list of valid values, see DWBuffer.

row

Long by value.

The number of the row involved in the database activity that caused the error (the row being updated, selected, inserted, or deleted).

Web ActiveX event information Event name: onDBError

Argument

Description

SQLDatabaseCode

Number. A database-specific error code.

See your DBMS documentation for information on the meaning of the code.

When there is no error code from the DBMS, SQLDatabaseCode contains one of these values:

  • -1 – Cannot connect to the database because of missing values in the transaction object.

  • -2 – Cannot connect to the database.

  • -3 – The key specified in an Update or Retrieve no longer matches an existing row. This can happen when another user has changed the row after you retrieved it.

  • -4 – Writing a blob to the database failed.

SQLDatabaseErrorText

String. A database-specific error message.

SQLSyntax

String. The full text of the SQL statement being sent to the DBMS when the error occurred.

dwBuffer

Number. The buffer containing the row involved in the database activity that caused the error.

For a list of valid values, see DWBuffer.

row

Number. The number of the row involved in the database activity that caused the error (the row being updated, selected, inserted, or deleted).

Returns

Set the return code to affect the outcome of the event:

For information on setting the return code in a particular environment, see “About return values for DataWindow events”.

Usage

By default, when the DBError event occurs in a DataWindow control, it displays a system error message. You can display your own message and suppress the system message by specifying a return code of 1 in the DBError event.

Since DataStores are nonvisual, a system message does not display when the DBError event occurs in a DataStore. You must add code to the DBError event to handle the error.

If the row that caused the error is in the Filter buffer, you must unfilter it if you want the user to correct the problem.

NoteReported row number The row number stored in row is the number of the row in the buffer, not the number the row had when it was retrieved into the DataWindow object.

Obsolete methods in PowerBuilder Information formerly provided by the DBErrorCode and DBErrorMessage methods is available in the arguments sqldbcode and sqlerrtext.

Examples

Example 1

This example illustrates how to display custom error messages for particular database error codes:

CHOOSE CASE sqldbcode


		CASE -195 // Required value is NULL.

		MessageBox("Database Problem", &

			"Error inserting row " + string(row) &

			+ ". Please specify a value for Employee ID.")

		CASE ...

		// Code to handle other errors


END CHOOSE


RETURN 1 // Do not display system error message

See also