Error Codes
To get an error code, use the SQLGetDiagRec()
function. It returns a string holding the ANSI SQL error code defined. For example:
SQLHENV env;
SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &env);
SQLSetEnvAttr(env, SQL_ATTR_ODBC_VERSION, reinterpret_cast<void*>(SQL_OV_ODBC3), 0);
SQLHDBC dbc;
SQLAllocHandle(SQL_HANDLE_DBC, env, &dbc);
SQLCHAR connectStr[] = "DRIVER={Apache Ignite};SERVER=localhost;PORT=10800;SCHEMA=Person;";
SQLDriverConnect(dbc, NULL, connectStr, SQL_NTS, 0, 0, 0, SQL_DRIVER_COMPLETE);
SQLAllocHandle(SQL_HANDLE_STMT, dbc, &stmt);
SQLCHAR query[] = "SELECT firstName, lastName, resume, salary FROM Person";
SQLRETURN ret = SQLExecDirect(stmt, query, SQL_NTS);
if (ret != SQL_SUCCESS)
{
SQLCHAR sqlstate[7] = "";
SQLINTEGER nativeCode;
SQLCHAR message[1024];
SQLSMALLINT reallen = 0;
int i = 1;
ret = SQLGetDiagRec(SQL_HANDLE_STMT, stmt, i, sqlstate,
&nativeCode, message, sizeof(message), &reallen);
while (ret != SQL_NO_DATA)
{
std::cout << sqlstate << ": " << message;
++i;
ret = SQLGetDiagRec(SQL_HANDLE_STMT, stmt, i, sqlstate,
&nativeCode, message, sizeof(message), &reallen);
}
}
The table below lists all the error codes supported by Ignite presently. This list may be extended in the future.
Code | Description |
---|---|
01S00 |
Invalid connection string attribute. |
01S02 |
The driver did not support the specified value and substituted a similar value. |
08001 |
The driver failed to open a connection to the cluster. |
08002 |
The connection is already established. |
08003 |
The connection is in the closed state. Happened unexpectedly. |
08004 |
The connection is rejected by the cluster. |
08S01 |
Connection failure. |
22026 |
String length mismatch in data-at-execution dialog. |
23000 |
Integrity constraint violation (e.g. duplicate key, null key and so on). |
24000 |
Invalid cursor state. |
42000 |
Syntax error in request. |
42S01 |
Table already exists. |
42S02 |
Table not found. |
42S11 |
Index already exists. |
42S12 |
Index not found. |
42S21 |
Column already exists. |
42S22 |
Column not found. |
HY000 |
General error. See error message for details. |
HY001 |
Memory allocation error. |
HY003 |
Invalid application buffer type. |
HY004 |
Invalid SQL data type. |
HY009 |
Invalid use of null-pointer. |
HY010 |
Function call sequence error. |
HY090 |
Invalid string or buffer length (e.g. negative or zero length). |
HY092 |
Option type out of range. |
HY097 |
Column type out of range. |
HY105 |
Invalid parameter type. |
HY106 |
Fetch type out of range. |
HYC00 |
Feature is not implemented. |
IM001 |
Function is not supported. |
Apache, Apache Ignite, the Apache feather and the Apache Ignite logo are either registered trademarks or trademarks of The Apache Software Foundation.