ODBC Error Handling
From CometWiki
Line 38: | Line 38: | ||
DBERR.FUNCTION // 4-Function failed (BOOL) | DBERR.FUNCTION // 4-Function failed (BOOL) | ||
DBERR.INVPARAM // 5-Invalid command parameter | DBERR.INVPARAM // 5-Invalid command parameter | ||
- | DBERR.RSINVALID // 6-Invalid or unknown recordset | + | DBERR.RSINVALID // 6-Invalid or unknown recordset |
- | DBERR_NOTOPEN | + | DBERR_NOTOPEN // 7 - Database is not open |
Recordset Errors: | Recordset Errors: | ||
Line 54: | Line 54: | ||
RSERR.INVBOOKMARK // 10-Invalid bookmark | RSERR.INVBOOKMARK // 10-Invalid bookmark | ||
RSERR.EXPWRITE // 11-Write was expected | RSERR.EXPWRITE // 11-Write was expected | ||
- | RSERR.INVCOLUMN // 12-Bind Column not found | + | RSERR.INVCOLUMN // 12-Bind Column not found |
- | RSERR.DATAERROR // 13-Loss of data would occur | + | RSERR.DATAERROR // 13-Loss of data would occur |
RSERR_INVMAP // 14-Invalid item in map | RSERR_INVMAP // 14-Invalid item in map | ||
RSERR_NOTOPEN // 15-Recordset is not open | RSERR_NOTOPEN // 15-Recordset is not open | ||
Line 65: | Line 65: | ||
If the “ErrorCodes” option was specified when the Database object was created the error string will be: | If the “ErrorCodes” option was specified when the Database object was created the error string will be: | ||
- | + | '''State''':<''strState''>,'''Native''':<''nNative''>,'''Origin''':<''strErrorMsg''> | |
- | <strState> A five-character error code returned in the szSqlState parameter | + | <''strState''> A five-character error code returned in the szSqlState parameter |
- | <nNative> The native error code, specific to the data source. | + | <''nNative''> The native error code, specific to the data source. |
- | <strErrorMsg > The error message text returned in the szErrorMsg parameter of the ::SQLError function. This message consists of several bracketed names. As an error is passed from its source to the user, each ODBC component (data source, driver, Driver Manager) appends its own name. This information helps to pinpoint the origin of the error. | + | <''strErrorMsg'' > The error message text returned in the szErrorMsg parameter of the ::SQLError function.<BR/> |
+ | This message consists of several bracketed names.<BR/> | ||
+ | As an error is passed from its source to the user, each ODBC component (data source, driver, Driver Manager) appends its own name.<BR/> | ||
+ | This information helps to pinpoint the origin of the error. |
Revision as of 10:14, 29 May 2009
ODBC Error Handling
Error Generation
When using the CONTROL function, error information (if any) will be contained in the returned <Result> string.
When an Internal or ODBC error occurs during a Read or Write operation, the error information must be obtained from the driver using the dbGetLastError command.
Example:
Write (Lun, RSDefinition) Excp = BadDefinition . . Return . BadDefinition: Result$ = Control(Lun, "dbGetLastError") Print Result$ Goto Abort . Error Interpretation
Internal errors generated by the Comet ODBC driver are returned in the form of:-
“Local:<Type><ErrorNum> <ErrorDescription>”
where:
“Local:” Indicates an internal driver error. <Type>
“D” if the error occurred during a Database command. “R” if the error occurred during a Recordset command.
<ErrorNum> One of the following errors:
Database Errors:
DBERR.NONE // 0-No error DBERR.CMDINVALID // 1-Invalid command DBERR.SYSTEM // 2-Non CDatabase thrown exception DBERR.ODBC // 3-CDatabase thrown exception DBERR.FUNCTION // 4-Function failed (BOOL) DBERR.INVPARAM // 5-Invalid command parameter DBERR.RSINVALID // 6-Invalid or unknown recordset DBERR_NOTOPEN // 7 - Database is not open
Recordset Errors:
RSERR.NONE // 0-No error RSERR.CMDINVALID // 1-Invalid command RSERR.SYSTEM // 2-Non CRecordset thrown exception RSERR.ODBC // 3-CRecordset thrown exception RSERR.FUNCTION // 4-Function failed RSERR.INVPARAM // 5-Invalid command parameter RSERR.INVTYPE // 6-Incorrect Internet Basic type for SQL type RSERR.TYPENOSUP // 7-SQL type not supported RSERR.INVWRITE // 8-Unexpected write RSERR.EOF // 9-End of File RSERR.INVBOOKMARK // 10-Invalid bookmark RSERR.EXPWRITE // 11-Write was expected RSERR.INVCOLUMN // 12-Bind Column not found RSERR.DATAERROR // 13-Loss of data would occur RSERR_INVMAP // 14-Invalid item in map RSERR_NOTOPEN // 15-Recordset is not open
Errors returned by the ODBC driver are returned in the following forms:
If the “ErrorCodes” option was NOT specified when the Database object was created the error string will be in the form of a use decipherable message.
If the “ErrorCodes” option was specified when the Database object was created the error string will be:
State:<strState>,Native:<nNative>,Origin:<strErrorMsg>
<strState> A five-character error code returned in the szSqlState parameter
<nNative> The native error code, specific to the data source.
<strErrorMsg > The error message text returned in the szErrorMsg parameter of the ::SQLError function.
This message consists of several bracketed names.
As an error is passed from its source to the user, each ODBC component (data source, driver, Driver Manager) appends its own name.
This information helps to pinpoint the origin of the error.