common.hpp
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:3k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /* Copyright (C) 2003 MySQL AB
  2.    This program is free software; you can redistribute it and/or modify
  3.    it under the terms of the GNU General Public License as published by
  4.    the Free Software Foundation; either version 2 of the License, or
  5.    (at your option) any later version.
  6.    This program is distributed in the hope that it will be useful,
  7.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  8.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  9.    GNU General Public License for more details.
  10.    You should have received a copy of the GNU General Public License
  11.    along with this program; if not, write to the Free Software
  12.    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
  13. #ifndef ODBC_COMMON_common_hpp
  14. #define ODBC_COMMON_common_hpp
  15. #define stpcpy stpcpy
  16. #include <ndb_global.h>
  17. #undef swap
  18. // misc defs
  19. #ifdef NDB_GCC // only for odbc
  20. #define PRINTFLIKE(i,j) __attribute__ ((format (printf, i, j)))
  21. #else
  22. #define PRINTFLIKE(i,j)
  23. #endif
  24. // odbc defs
  25. #define ODBCVER 0x0351
  26. #ifdef NDB_WIN32
  27. #include <windows.h>
  28. #endif
  29. extern "C" {
  30. #include <sqlext.h>
  31. }
  32. // some types which may be missing
  33. #ifndef SQL_BLOB
  34. #define SQL_BLOB 30
  35. #endif
  36. #ifndef SQL_BLOB_LOCATOR
  37. #define SQL_BLOB_LOCATOR 31
  38. #endif
  39. #ifndef SQL_CLOB
  40. #define SQL_CLOB 40
  41. #endif
  42. #ifndef SQL_CLOB_LOCATOR
  43. #define SQL_CLOB_LOCATOR 41
  44. #endif
  45. // until real blobs use Varchar of this size
  46. #define FAKE_BLOB_SIZE 2000
  47. #define SQL_HANDLE_ROOT 0 // assume real handles != 0
  48. enum OdbcHandle {
  49.     Odbc_handle_root = 0, // not an odbc handle
  50.     Odbc_handle_env = 1,
  51.     Odbc_handle_dbc = 2,
  52.     Odbc_handle_stmt = 4,
  53.     Odbc_handle_desc = 8,
  54.     Odbc_handle_all = (1|2|4|8)
  55. };
  56. // ndb defs
  57. #undef BOOL
  58. #include <ndb_types.h>
  59. // this info not yet on api side
  60. #include <kernel/ndb_limits.h>
  61. #include <ndb_version.h>
  62. #ifndef MAX_TAB_NAME_SIZE
  63. #define MAX_TAB_NAME_SIZE 128
  64. #endif
  65. #ifndef MAX_ATTR_NAME_SIZE
  66. #define MAX_ATTR_NAME_SIZE 32
  67. #endif
  68. #ifndef MAX_ATTR_DEFAULT_VALUE_SIZE
  69. #define MAX_ATTR_DEFAULT_VALUE_SIZE 128
  70. #endif
  71. typedef Uint32 NdbAttrId;
  72. typedef Uint64 CountType;
  73. // ndb odbc defs
  74. #define NDB_ODBC_COMPONENT_VENDOR "[MySQL]"
  75. #define NDB_ODBC_COMPONENT_DRIVER "[ODBC driver]"
  76. #define NDB_ODBC_COMPONENT_DATABASE "[NDB Cluster]"
  77. #define NDB_ODBC_VERSION_MAJOR 0
  78. #define NDB_ODBC_VERSION_MINOR 22
  79. #define NDB_ODBC_VERSION_STRING "0.22"
  80. // reserved error codes for non-NDB errors
  81. #define NDB_ODBC_ERROR_MIN 5000
  82. #define NDB_ODBC_ERROR_MAX 5100
  83. // maximum log level compiled in
  84. #ifdef VM_TRACE
  85. #define NDB_ODBC_MAX_LOG_LEVEL 5
  86. #else
  87. #define NDB_ODBC_MAX_LOG_LEVEL 3
  88. #endif
  89. // driver specific statement attribute for number of NDB tuples fetched
  90. #define SQL_ATTR_NDB_TUPLES_FETCHED 66601
  91. #include <BaseString.hpp>
  92. #include <common/Sqlstate.hpp>
  93. #include <common/Ctx.hpp>
  94. #undef assert
  95. #endif