Blame ma_error.h

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_ */