SQLERRD array
Some error codes that can be reported in SQLCODE reflect general problems. The database server can set a more detailed code in the second field of SQLERRD that reveals the error that the database server I/O routines or the operating system encountered.
The integers in the SQLERRD array are set to different values following
different statements. The first and fourth elements of the array are
used only in .
The following table shows how the fields are used.
Field | Interpretation |
---|---|
First | After a successful PREPARE statement for a SELECT, UPDATE, INSERT, or DELETE statement, or after a Select cursor is opened, this field contains the estimated number of rows affected. |
Second | When SQLCODE contains an error code, this field contains either zero or an additional error code, called the ISAM error code, that explains the cause of the main error. After a successful insert operation of a single row, this field contains the value of any SERIAL, BIGSERIAL, or SERIAL8 value generated for that row. (This field is not updated, however, when a serial column is directly inserted as a triggered action by a trigger on a table, or by an INSTEAD OF trigger on a view.) |
Third | After a successful multirow insert, update, or delete operation, this field contains the number of rows that were processed. After a multirow insert, update, or delete operation that ends with an error, this field contains the number of rows that were successfully processed before the error was detected. |
Fourth | After a successful PREPARE statement for a SELECT, UPDATE, INSERT, or DELETE statement, or after a select cursor has been opened, this field contains the estimated weighted sum of disk accesses and total rows processed. |
Fifth | After a syntax error in a PREPARE, EXECUTE IMMEDIATE, DECLARE, or static SQL statement, this field contains the offset in the statement text where the error was detected. |
Sixth | After a successful fetch of a selected row, or a successful insert, update, or delete operation, this field contains the rowid (physical address) of the last row that was processed. Whether this rowid value corresponds to a row that the database server returns to the user depends on how the database server processes a query, particularly for SELECT statements. |
Seventh | Reserved. |
These additional details can be useful. For example, you can use the value in the third field to report how many rows were deleted or updated. When your program prepares an SQL statement that the user enters and an error is found, the value in the fifth field enables you to display the exact point of error to the user. (DB-Access uses this feature to position the cursor when you ask to modify a statement after an error.)