|
Packit Service |
17f749 |
/************************************************************************************
|
|
Packit Service |
17f749 |
Copyright (C) 2013,2015 MariaDB Corporation AB
|
|
Packit Service |
17f749 |
|
|
Packit Service |
17f749 |
This library is free software; you can redistribute it and/or
|
|
Packit Service |
17f749 |
modify it under the terms of the GNU Library General Public
|
|
Packit Service |
17f749 |
License as published by the Free Software Foundation; either
|
|
Packit Service |
17f749 |
version 2.1 of the License, or (at your option) any later version.
|
|
Packit Service |
17f749 |
|
|
Packit Service |
17f749 |
This library is distributed in the hope that it will be useful,
|
|
Packit Service |
17f749 |
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
Packit Service |
17f749 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Packit Service |
17f749 |
Library General Public License for more details.
|
|
Packit Service |
17f749 |
|
|
Packit Service |
17f749 |
You should have received a copy of the GNU Library General Public
|
|
Packit Service |
17f749 |
License along with this library; if not see <http://www.gnu.org/licenses>
|
|
Packit Service |
17f749 |
or write to the Free Software Foundation, Inc.,
|
|
Packit Service |
17f749 |
51 Franklin St., Fifth Floor, Boston, MA 02110, USA
|
|
Packit Service |
17f749 |
*************************************************************************************/
|
|
Packit Service |
17f749 |
#ifndef _ma_error_h_
|
|
Packit Service |
17f749 |
#define _ma_error_h_
|
|
Packit Service |
17f749 |
|
|
Packit Service |
17f749 |
extern MADB_ERROR MADB_ErrorList[];
|
|
Packit Service |
17f749 |
|
|
Packit Service |
17f749 |
enum enum_madb_error {
|
|
Packit Service |
17f749 |
MADB_ERR_00000=0,
|
|
Packit Service |
17f749 |
MADB_ERR_01000,
|
|
Packit Service |
17f749 |
MADB_ERR_01001,
|
|
Packit Service |
17f749 |
MADB_ERR_01002,
|
|
Packit Service |
17f749 |
MADB_ERR_01003,
|
|
Packit Service |
17f749 |
MADB_ERR_01004,
|
|
Packit Service |
17f749 |
MADB_ERR_01006,
|
|
Packit Service |
17f749 |
MADB_ERR_01007,
|
|
Packit Service |
17f749 |
MADB_ERR_01S00,
|
|
Packit Service |
17f749 |
MADB_ERR_01S01,
|
|
Packit Service |
17f749 |
MADB_ERR_01S02,
|
|
Packit Service |
17f749 |
MADB_ERR_01S06,
|
|
Packit Service |
17f749 |
MADB_ERR_01S07,
|
|
Packit Service |
17f749 |
MADB_ERR_01S08,
|
|
Packit Service |
17f749 |
MADB_ERR_01S09,
|
|
Packit Service |
17f749 |
MADB_ERR_07001,
|
|
Packit Service |
17f749 |
MADB_ERR_07002,
|
|
Packit Service |
17f749 |
MADB_ERR_07005,
|
|
Packit Service |
17f749 |
MADB_ERR_07006,
|
|
Packit Service |
17f749 |
MADB_ERR_07009,
|
|
Packit Service |
17f749 |
MADB_ERR_07S01,
|
|
Packit Service |
17f749 |
MADB_ERR_08001,
|
|
Packit Service |
17f749 |
MADB_ERR_08002,
|
|
Packit Service |
17f749 |
MADB_ERR_08003,
|
|
Packit Service |
17f749 |
MADB_ERR_08004,
|
|
Packit Service |
17f749 |
MADB_ERR_08007,
|
|
Packit Service |
17f749 |
MADB_ERR_08S01,
|
|
Packit Service |
17f749 |
MADB_ERR_21S01,
|
|
Packit Service |
17f749 |
MADB_ERR_21S02,
|
|
Packit Service |
17f749 |
MADB_ERR_22001,
|
|
Packit Service |
17f749 |
MADB_ERR_22002,
|
|
Packit Service |
17f749 |
MADB_ERR_22003,
|
|
Packit Service |
17f749 |
MADB_ERR_22007,
|
|
Packit Service |
17f749 |
MADB_ERR_22008,
|
|
Packit Service |
17f749 |
MADB_ERR_22012,
|
|
Packit Service |
17f749 |
MADB_ERR_22015,
|
|
Packit Service |
17f749 |
MADB_ERR_22018,
|
|
Packit Service |
17f749 |
MADB_ERR_22019,
|
|
Packit Service |
17f749 |
MADB_ERR_22025,
|
|
Packit Service |
17f749 |
MADB_ERR_22026,
|
|
Packit Service |
17f749 |
MADB_ERR_23000,
|
|
Packit Service |
17f749 |
MADB_ERR_24000,
|
|
Packit Service |
17f749 |
MADB_ERR_25000,
|
|
Packit Service |
17f749 |
MADB_ERR_25S01,
|
|
Packit Service |
17f749 |
MADB_ERR_25S02,
|
|
Packit Service |
17f749 |
MADB_ERR_25S03,
|
|
Packit Service |
17f749 |
MADB_ERR_28000,
|
|
Packit Service |
17f749 |
MADB_ERR_34000,
|
|
Packit Service |
17f749 |
MADB_ERR_3C000,
|
|
Packit Service |
17f749 |
MADB_ERR_3D000,
|
|
Packit Service |
17f749 |
MADB_ERR_3F000,
|
|
Packit Service |
17f749 |
MADB_ERR_40001,
|
|
Packit Service |
17f749 |
MADB_ERR_40002,
|
|
Packit Service |
17f749 |
MADB_ERR_40003,
|
|
Packit Service |
17f749 |
MADB_ERR_42000,
|
|
Packit Service |
17f749 |
MADB_ERR_42S01,
|
|
Packit Service |
17f749 |
MADB_ERR_42S02,
|
|
Packit Service |
17f749 |
MADB_ERR_42S11,
|
|
Packit Service |
17f749 |
MADB_ERR_42S12,
|
|
Packit Service |
17f749 |
MADB_ERR_42S21,
|
|
Packit Service |
17f749 |
MADB_ERR_42S22,
|
|
Packit Service |
17f749 |
MADB_ERR_44000,
|
|
Packit Service |
17f749 |
MADB_ERR_HY000,
|
|
Packit Service |
17f749 |
MADB_ERR_HY001,
|
|
Packit Service |
17f749 |
MADB_ERR_HY003,
|
|
Packit Service |
17f749 |
MADB_ERR_HY004,
|
|
Packit Service |
17f749 |
MADB_ERR_HY007,
|
|
Packit Service |
17f749 |
MADB_ERR_HY008,
|
|
Packit Service |
17f749 |
MADB_ERR_HY009,
|
|
Packit Service |
17f749 |
MADB_ERR_HY010,
|
|
Packit Service |
17f749 |
MADB_ERR_HY011,
|
|
Packit Service |
17f749 |
MADB_ERR_HY012,
|
|
Packit Service |
17f749 |
MADB_ERR_HY013,
|
|
Packit Service |
17f749 |
MADB_ERR_HY014,
|
|
Packit Service |
17f749 |
MADB_ERR_HY015,
|
|
Packit Service |
17f749 |
MADB_ERR_HY016,
|
|
Packit Service |
17f749 |
MADB_ERR_HY017,
|
|
Packit Service |
17f749 |
MADB_ERR_HY018,
|
|
Packit Service |
17f749 |
MADB_ERR_HY019,
|
|
Packit Service |
17f749 |
MADB_ERR_HY020,
|
|
Packit Service |
17f749 |
MADB_ERR_HY021,
|
|
Packit Service |
17f749 |
MADB_ERR_HY024,
|
|
Packit Service |
17f749 |
MADB_ERR_HY090,
|
|
Packit Service |
17f749 |
MADB_ERR_HY091,
|
|
Packit Service |
17f749 |
MADB_ERR_HY092,
|
|
Packit Service |
17f749 |
MADB_ERR_HY095,
|
|
Packit Service |
17f749 |
MADB_ERR_HY096,
|
|
Packit Service |
17f749 |
MADB_ERR_HY097,
|
|
Packit Service |
17f749 |
MADB_ERR_HY098,
|
|
Packit Service |
17f749 |
MADB_ERR_HY099,
|
|
Packit Service |
17f749 |
MADB_ERR_HY100,
|
|
Packit Service |
17f749 |
MADB_ERR_HY101,
|
|
Packit Service |
17f749 |
MADB_ERR_HY103,
|
|
Packit Service |
17f749 |
MADB_ERR_HY104,
|
|
Packit Service |
17f749 |
MADB_ERR_HY105,
|
|
Packit Service |
17f749 |
MADB_ERR_HY106,
|
|
Packit Service |
17f749 |
MADB_ERR_HY107,
|
|
Packit Service |
17f749 |
MADB_ERR_HY109,
|
|
Packit Service |
17f749 |
MADB_ERR_HY110,
|
|
Packit Service |
17f749 |
MADB_ERR_HY111,
|
|
Packit Service |
17f749 |
MADB_ERR_HYC00,
|
|
Packit Service |
17f749 |
MADB_ERR_HYT00,
|
|
Packit Service |
17f749 |
MADB_ERR_HYT01,
|
|
Packit Service |
17f749 |
MADB_ERR_IM001,
|
|
Packit Service |
17f749 |
MADB_ERR_IM002,
|
|
Packit Service |
17f749 |
MADB_ERR_IM003,
|
|
Packit Service |
17f749 |
MADB_ERR_IM004,
|
|
Packit Service |
17f749 |
MADB_ERR_IM005,
|
|
Packit Service |
17f749 |
MADB_ERR_IM006,
|
|
Packit Service |
17f749 |
MADB_ERR_IM007,
|
|
Packit Service |
17f749 |
MADB_ERR_IM008,
|
|
Packit Service |
17f749 |
MADB_ERR_IM009,
|
|
Packit Service |
17f749 |
MADB_ERR_IM010,
|
|
Packit Service |
17f749 |
MADB_ERR_IM011,
|
|
Packit Service |
17f749 |
MADB_ERR_IM012,
|
|
Packit Service |
17f749 |
MADB_ERR_IM013,
|
|
Packit Service |
17f749 |
MADB_ERR_IM014,
|
|
Packit Service |
17f749 |
MADB_ERR_IM015,
|
|
Packit Service |
17f749 |
MADB_ERR_S1000,
|
|
Packit Service |
17f749 |
MADB_ERR_S1107,
|
|
Packit Service |
17f749 |
MADB_ERR_S1C00,
|
|
Packit Service |
17f749 |
};
|
|
Packit Service |
17f749 |
char* MADB_PutErrorPrefix(MADB_Dbc *dbc, MADB_Error *error);
|
|
Packit Service |
17f749 |
|
|
Packit Service |
17f749 |
SQLRETURN MADB_SetError(MADB_Error *Error, unsigned int SqlErrorCode, const char *SqlErrorMsg, unsigned int NativeError);
|
|
Packit Service |
17f749 |
SQLRETURN MADB_SetNativeError(MADB_Error *Error, SQLSMALLINT HandleType, void *Ptr);
|
|
Packit Service |
17f749 |
void MADB_CopyError(MADB_Error *ErrorTo, MADB_Error *ErrorFrom);
|
|
Packit Service |
17f749 |
SQLRETURN MADB_GetDiagRec(MADB_Error *Err, SQLSMALLINT RecNumber,
|
|
Packit Service |
17f749 |
void *SQLState, SQLINTEGER *NativeErrorPtr,
|
|
Packit Service |
17f749 |
void *MessageText, SQLSMALLINT BufferLength,
|
|
Packit Service |
17f749 |
SQLSMALLINT *TextLengthPtr, my_bool isWChar,
|
|
Packit Service |
17f749 |
SQLINTEGER OdbcVersion);
|
|
Packit Service |
17f749 |
SQLRETURN MADB_GetDiagField(SQLSMALLINT HandleType, SQLHANDLE Handle,
|
|
Packit Service |
17f749 |
SQLSMALLINT RecNumber, SQLSMALLINT DiagIdentifier, SQLPOINTER
|
|
Packit Service |
17f749 |
DiagInfoPtr, SQLSMALLINT BufferLength,
|
|
Packit Service |
17f749 |
SQLSMALLINT *StringLengthPtr, my_bool isWChar);
|
|
Packit Service |
17f749 |
|
|
Packit Service |
17f749 |
#define MADB_CLEAR_ERROR(a) do { \
|
|
Packit Service |
17f749 |
strcpy_s((a)->SqlState, SQL_SQLSTATE_SIZE+1, MADB_ErrorList[MADB_ERR_00000].SqlState); \
|
|
Packit Service |
17f749 |
(a)->SqlErrorMsg[(a)->PrefixLen]= 0; \
|
|
Packit Service |
17f749 |
(a)->NativeError= 0;\
|
|
Packit Service |
17f749 |
(a)->ReturnValue= SQL_SUCCESS;\
|
|
Packit Service |
17f749 |
(a)->ErrorNum= 0; \
|
|
Packit Service |
17f749 |
} while (0)
|
|
Packit Service |
17f749 |
|
|
Packit Service |
17f749 |
#define MADB_CLEAR_HANDLE_ERROR(handle_type, handle) \
|
|
Packit Service |
17f749 |
switch (handle_type) { \
|
|
Packit Service |
17f749 |
case SQL_HANDLE_ENV: \
|
|
Packit Service |
17f749 |
MADB_CLEAR_ERROR(&((MADB_Env *)Handle)->Error); \
|
|
Packit Service |
17f749 |
break; \
|
|
Packit Service |
17f749 |
case SQL_HANDLE_DBC: \
|
|
Packit Service |
17f749 |
MADB_CLEAR_ERROR(&((MADB_Dbc *)Handle)->Error); \
|
|
Packit Service |
17f749 |
break; \
|
|
Packit Service |
17f749 |
case SQL_HANDLE_STMT:\
|
|
Packit Service |
17f749 |
MADB_CLEAR_ERROR(&((MADB_Stmt *)Handle)->Error); \
|
|
Packit Service |
17f749 |
}
|
|
Packit Service |
17f749 |
|
|
Packit Service |
17f749 |
#define MADB_CHECK_HANDLE_CLEAR_ERROR(handle_type, handle) \
|
|
Packit Service |
17f749 |
if (handle == 0) return SQL_INVALID_HANDLE;\
|
|
Packit Service |
17f749 |
MADB_CLEAR_HANDLE_ERROR(handle_type, handle) \
|
|
Packit Service |
17f749 |
|
|
Packit Service |
17f749 |
|
|
Packit Service |
17f749 |
#define MADB_NOT_IMPLEMENTED(HANDLE)\
|
|
Packit Service |
17f749 |
MADB_SetError(&(HANDLE)->Error, MADB_ERR_IM001, NULL, 0);\
|
|
Packit Service |
17f749 |
return SQL_ERROR;
|
|
Packit Service |
17f749 |
|
|
Packit Service |
17f749 |
#define MADB_CHECK_ATTRIBUTE(Handle, Attr, ValidAttrs)\
|
|
Packit Service |
17f749 |
{\
|
|
Packit Service |
17f749 |
SQLULEN x=1, ok=0, my_attr=(SQLULEN)(Attr);\
|
|
Packit Service |
17f749 |
while (x <= ValidAttrs[0] && !ok)\
|
|
Packit Service |
17f749 |
if ((ok= ValidAttrs[x++] == my_attr))\
|
|
Packit Service |
17f749 |
if (!ok)\
|
|
Packit Service |
17f749 |
{\
|
|
Packit Service |
17f749 |
MADB_SetError(&(Handle)->Error,MADB_ERR_HY024, NULL, 0);\
|
|
Packit Service |
17f749 |
return (Handle)->Error.ReturnValue;\
|
|
Packit Service |
17f749 |
}\
|
|
Packit Service |
17f749 |
}
|
|
Packit Service |
17f749 |
|
|
Packit Service |
17f749 |
#endif /* _ma_error_h_ */
|