> For the complete documentation index, see [llms.txt](https://mariadb.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mariadb.com/docs/connectors/gridgain-8/sql/odbc/error-codes.md).

# Error Codes

How to retrieve error codes from the GridGain ODBC driver, and a reference of the ANSI SQL error codes it returns.

To get an error code, use the `SQLGetDiagRec()` function. It returns a string holding the ANSI SQL error code defined. For example:

```cpp
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.                                                      |

<sub>*This page is: Copyright © 2026 MariaDB. All rights reserved.*</sub>

{% @marketo/form formId="4316" %}
