blob: a1d29cec9a799cf6dd373f3b9bdcd52a68a3ab58 [file] [log] [blame]
// Licensed to the Apache Software Foundation (ASF) under one or more
// contributor license agreements. See the NOTICE file distributed with
// this work for additional information regarding copyright ownership.
// The ASF licenses this file to You under the Apache License, Version 2.0
// (the "License"); you may not use this file except in compliance with
// the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
= Error Codes
To get an error code, use the `SQLGetDiagRec()` function. It returns a string holding the ANSI SQL error code defined. For example:
[source,c++]
----
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.
[width="100%",cols="20%,80%"]
|=======================================================================
|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.
|=======================================================================