mysql.h 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. /*
  2. * MYSQL 5.0 Protocol Implementation
  3. * Copyright (C)2005-2016 Haxe Foundation
  4. *
  5. * Permission is hereby granted, free of charge, to any person obtaining a
  6. * copy of this software and associated documentation files (the "Software"),
  7. * to deal in the Software without restriction, including without limitation
  8. * the rights to use, copy, modify, merge, publish, distribute, sublicense,
  9. * and/or sell copies of the Software, and to permit persons to whom the
  10. * Software is furnished to do so, subject to the following conditions:
  11. *
  12. * The above copyright notice and this permission notice shall be included in
  13. * all copies or substantial portions of the Software.
  14. *
  15. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  16. * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  17. * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  18. * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  19. * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  20. * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
  21. * DEALINGS IN THE SOFTWARE.
  22. */
  23. #ifndef MYSQL_H
  24. #define MYSQL_H
  25. struct _MYSQL;
  26. struct _MYSQL_RES;
  27. typedef struct _MYSQL MYSQL;
  28. typedef struct _MYSQL_RES MYSQL_RES;
  29. typedef char **MYSQL_ROW;
  30. typedef enum enum_field_types {
  31. FIELD_TYPE_DECIMAL = 0x00,
  32. FIELD_TYPE_TINY = 0x01,
  33. FIELD_TYPE_SHORT = 0x02,
  34. FIELD_TYPE_LONG = 0x03,
  35. FIELD_TYPE_FLOAT = 0x04,
  36. FIELD_TYPE_DOUBLE = 0x05,
  37. FIELD_TYPE_NULL = 0x06,
  38. FIELD_TYPE_TIMESTAMP = 0x07,
  39. FIELD_TYPE_LONGLONG = 0x08,
  40. FIELD_TYPE_INT24 = 0x09,
  41. FIELD_TYPE_DATE = 0x0A,
  42. FIELD_TYPE_TIME = 0x0B,
  43. FIELD_TYPE_DATETIME = 0x0C,
  44. FIELD_TYPE_YEAR = 0x0D,
  45. FIELD_TYPE_NEWDATE = 0x0E,
  46. FIELD_TYPE_VARCHAR = 0x0F,
  47. FIELD_TYPE_BIT = 0x10,
  48. FIELD_TYPE_NEWDECIMAL = 0xF6,
  49. FIELD_TYPE_ENUM = 0xF7,
  50. FIELD_TYPE_SET = 0xF8,
  51. FIELD_TYPE_TINY_BLOB = 0xF9,
  52. FIELD_TYPE_MEDIUM_BLOB = 0xFA,
  53. FIELD_TYPE_LONG_BLOB = 0xFB,
  54. FIELD_TYPE_BLOB = 0xFC,
  55. FIELD_TYPE_VAR_STRING = 0xFD,
  56. FIELD_TYPE_STRING = 0xFE,
  57. FIELD_TYPE_GEOMETRY = 0xFF
  58. } FIELD_TYPE;
  59. typedef enum {
  60. NOT_NULL_FLAG = 1,
  61. PRI_KEY_FLAG = 2,
  62. UNIQUE_KEY_FLAG = 4,
  63. MULTIPLE_KEY_FLAG = 8,
  64. BLOB_FLAG = 16,
  65. UNSIGNED_FLAG = 32,
  66. ZEROFILL_FLAG = 64,
  67. BINARY_FLAG = 128,
  68. ENUM_FLAG = 256,
  69. AUTO_INCREMENT_FLAG = 512,
  70. TIMESTAMP_FLAG = 1024,
  71. SET_FLAG = 2048,
  72. NUM_FLAG = 32768,
  73. } __FIELD_FLAG;
  74. typedef struct {
  75. char *catalog;
  76. char *db;
  77. char *table;
  78. char *org_table;
  79. char *name;
  80. char *org_name;
  81. int charset;
  82. int length;
  83. int flags;
  84. int decimals;
  85. FIELD_TYPE type;
  86. } MYSQL_FIELD;
  87. #define mysql_init mp_init
  88. #define mysql_real_connect mp_real_connect
  89. #define mysql_select_db mp_select_db
  90. #define mysql_real_query mp_real_query
  91. #define mysql_store_result mp_store_result
  92. #define mysql_field_count mp_field_count
  93. #define mysql_affected_rows mp_affected_rows
  94. #define mysql_escape_string mp_escape_string
  95. #define mysql_real_escape_string mp_real_escape_string
  96. #define mysql_close mp_close
  97. #define mysql_error mp_error
  98. #define mysql_num_rows mp_num_rows
  99. #define mysql_num_fields mp_num_fields
  100. #define mysql_fetch_fields mp_fetch_fields
  101. #define mysql_fetch_lengths mp_fetch_lengths
  102. #define mysql_fetch_row mp_fetch_row
  103. #define mysql_free_result mp_free_result
  104. MYSQL *mysql_init( void * );
  105. MYSQL *mysql_real_connect( MYSQL *m, const char *host, const char *user, const char *pass, void *unused, int port, const char *socket, int options );
  106. int mysql_select_db( MYSQL *m, const char *dbname );
  107. int mysql_real_query( MYSQL *m, const char *query, int qlength );
  108. MYSQL_RES *mysql_store_result( MYSQL *m );
  109. int mysql_field_count( MYSQL *m );
  110. int mysql_affected_rows( MYSQL *m );
  111. int mysql_escape_string( MYSQL *m, char *sout, const char *sin, int length );
  112. int mysql_real_escape_string( MYSQL *m, char *sout, const char *sin, int length );
  113. void mysql_close( MYSQL *m );
  114. const char *mysql_error( MYSQL *m );
  115. const char *mysql_character_set_name( MYSQL *m );
  116. unsigned int mysql_num_rows( MYSQL_RES *r );
  117. int mysql_num_fields( MYSQL_RES *r );
  118. MYSQL_FIELD *mysql_fetch_fields( MYSQL_RES *r );
  119. unsigned long *mysql_fetch_lengths( MYSQL_RES *r );
  120. MYSQL_ROW mysql_fetch_row( MYSQL_RES * r );
  121. void mysql_free_result( MYSQL_RES *r );
  122. #endif
  123. /* ************************************************************************ */