version 2004
ODBC_SQLGetDiagRec (handleType; handleID; recNb; sqlState; nativeError; messageText{; textLength}) Longint
Parameter | Type | Description | |
handleType | Longint | Type of ID to pass to handleID | |
handleID | Longint | Handle ID for the diagnostic data structure | |
recNb | Longint | Indicates the status record from which information | |
is sought. Status records are numbered from 1 | |||
sqlState | String | Five-character SQLSTATE code pertaining to the | |
diagnostic record recNb | |||
nativeError | Longint | Native error code, specific to the data source | |
messageText | Text | Diagnostic message text string | |
textLength | Longint | Length of the string returned in messageText | |
Function result | Longint | Returns the result of the MS ODBC API function | |
SQLGetDiagRec |
Description
The ODBC_SQLGetDiagRec command returns the current values of multiple fields of a diagnostic record that contains error, warning, and status information. Call this command any time one of the other 4D ODBC PRO commands does not return SQL_SUCCESS.
handleType defines the type of ID to pass to handleID, which can be one of the following:
Constant | Description |
SQL_HANDLE_ENV | Environment ID |
SQL_HANDLE_DBC | Connection ID |
SQL_HANDLE_STMT | Statement ID |
SQL_HANDLE_DESC | Descriptor ID |
handleID is a handle ID for the diagnostic data structure, of the type indicated by handleType. If handleType is SQL_HANDLE_ENV, this parameter is taken into account and the constant SQL_DEFAULT_ID can be then used.
handleID is the connectionID if handleType is equal to SQL_HANDLE_DBC. connectionID is a valid connection ID returned by ODBC_SQLAllocConnect and a connection must be established using the ODBC_SQLConnect command.
Otherwise, handleID is the stmtID, which is a valid statement ID returned by ODBC_SQLAllocStmt.
recNb indicates the status record from which information is sought. Status records are numbered from 1.
sqlState is the five-character SQLSTATE code pertaining to recNb. The first two characters indicate the class; the next three indicate the subclass. This value comes from the SQL_DIAG_SQLSTATE diagnostic field.
nativeError is the native error code specific to the data source, from the SQL_DIAG_NATIVE diagnostic field.
messageText is the diagnostic message text string, which comes from the SQL_DIAG_MESSAGE_TEXT field.
For more information, please see the SQLGetDiagRec function in the MS ODBC API at http://msdn.microsoft.com/library/en-us/odbc/htm/odbcsqlgetdiagrec.asp.
Function Results
SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_ERROR, or SQL_INVALID_HANDLE.
Example
The following method is called after the result from calling ODBC_SQLExecute is not equal to SQL_SUCCESS. The debugMessage variable will contain the error message:
If ($result#SQL_SUCCESS ) $resultDiag:=ODBC_SQLGetDiagRec (SQL_HANDLE_STMT ;$statementID;1;SQLState;nativeError; debugMessage;vTextLen) End if
See Also
ODBC_SetErrorHandler, ODBC_SQLGetDiagField.