54 #define MIN(x, y) ((x) < (y) ? (x) : (y))
55 #define MAX(x, y) ((x) > (y) ? (x) : (y))
77 static int DbExecuteSqlStatement(
DB_HANDLE handle,
const char* stmt_str)
80 return mysql_query((MYSQL*) handle, stmt_str);
111 const char* errmsg = NULL;
116 if ((!handle) || (!stmt_str) || (*stmt_str ==
'\0') || (! result)) {
125 (*result)->handle = handle;
129 status = DbExecuteSqlStatement(handle, stmt_str);
134 (*result)->data = mysql_store_result((MYSQL*) handle);
135 if ((*result)->data == NULL) {
145 if (errmsg && *errmsg) {
173 (*result)->
count = mysql_field_count((MYSQL*) (*result)->handle);
209 mysql_free_result((MYSQL_RES*) result->
data);
256 rowdata = mysql_fetch_row(result->
data);
263 (*row)->result = result;
264 (*row)->
data = rowdata;
345 unsigned long *lengths;
353 if ((field_index >= 0) && (field_index < row->result->count)) {
357 lengths = mysql_fetch_lengths((MYSQL_RES*) row->
result->
data);
361 if (row->data[field_index] != NULL) {
363 *result =
MemMalloc(lengths[field_index] + 1);
364 memcpy(*result, row->data[field_index], lengths[field_index]);
365 (*result)[lengths[field_index]] = 0;
420 const char* sql =
"start transaction";
436 const char* sql =
"commit";
452 const char* sql =
"rollback";
void * MemCalloc(size_t nmemb, size_t size)
void DbgOutput(unsigned int mask, const char *format,...)
int MsgLog(int status,...)
void DbStringFree(char *string)
int DbFetchRow(DB_RESULT result, DB_ROW *row)
struct db_result * DB_RESULT
const char * DbErrmsg(DB_HANDLE handle)
int DbExecuteSql(DB_HANDLE handle, const char *stmt_str, DB_RESULT *result)
void DbFreeRow(DB_ROW row)
void DbFreeResult(DB_RESULT result)
int DbBeginTransaction(void)
void * MemMalloc(size_t size)
int DbString(DB_ROW row, int field_index, char **result)
int DbExecuteSqlNoResult(DB_HANDLE handle, const char *stmt_str)