1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160
| #include <stdio.h> #include <stdlib.h> #include <string.h> #include "mysql.h"
#define SET_TRAN "SET AUTOCOMMIT=0" #define UNSET_TRAN "SET AUTOCOMMIT=1"
#define _HOST_ "127.0.0.1" #define _USER_ "root" #define _PASSWD_ "yanglinqi" #define _DBNAME_ "fi11_tv"
int mysql_OperationTran(MYSQL *mysql) { int ret = mysql_query(mysql, SET_TRAN); if (ret != 0) { printf("%s query set err: %s\n", __FUNCTION__, mysql_error(mysql)); return ret; } return ret; }
int mysql_AutoTran(MYSQL *mysql) { int ret = mysql_query(mysql, UNSET_TRAN); if (ret != 0) { printf("%s query set err: %s\n", __FUNCTION__, mysql_error(mysql)); return ret; } return ret; }
int mysql_Commit(MYSQL *mysql) { int ret = mysql_query(mysql, "COMMIT"); if (ret != 0) { printf("commit err: %s\n", mysql_error(mysql)); return ret; } return ret; }
int mysql_Rollback(MYSQL *mysql) { int ret = mysql_query(mysql, "ROLLBACK"); if (ret != 0) { printf("rollback err: %s\n", mysql_error(mysql)); return ret; } return ret; }
#define DROP_SAMPLE_TABLE "DROP TABLE IF EXISTS test_table" #define CREATE_SAMPLE_TABLE "CREATE TABLE test_table(col1 INT,\ col2 VARCHAR(10),\ col3 VARCHAR(10))" #define sql01 "INSERT INTO test_table(col1,col2,col3) VALUES(10, 'AAA', 'A1')" #define sql02 "INSERT INTO test_table(col1,col2,col3) VALUES(20, 'BBB', 'B2')" #define sql03 "INSERT INTO test_table(col1,col2,col3) VALUES(30, 'CCC', 'C3')" #define sql04 "INSERT INTO test_table(col1,col2,col3) VALUES(40, 'DDD', 'D4')"
int main(void) { int ret = 0;
MYSQL *mysql = mysql_init(NULL); mysql = mysql_real_connect(mysql, _HOST_, _USER_, _PASSWD_, _DBNAME_, 0, NULL, 0); if (mysql == NULL) { ret = mysql_errno(mysql); printf("func mysql_real_connect() err:%d\n", ret); return ret; } printf(" --- connect ok......\n"); if (mysql_query(mysql, DROP_SAMPLE_TABLE)) { fprintf(stderr, " DROP TABLE failed\n"); fprintf(stderr, " %s\n", mysql_error(mysql)); exit(0); } if (mysql_query(mysql, CREATE_SAMPLE_TABLE)) { fprintf(stderr, " CREATE TABLE failed\n"); fprintf(stderr, " %s\n", mysql_error(mysql)); exit(0); } ret = mysql_OperationTran(mysql); if (ret != 0) { printf("mysql_OperationTran() err:%d\n", ret); return ret; } ret = mysql_query(mysql, sql01); if (ret != 0) { printf("mysql_query() err:%d\n", ret); return ret; } ret = mysql_query(mysql, sql02); if (ret != 0) { printf("mysql_query() err:%d\n", ret); return ret; } ret = mysql_Commit(mysql); if (ret != 0) { printf("mysql_Commit() err:%d\n", ret); return ret; } #if 0 ret = mysql_AutoTran(mysql); if (ret != 0) { printf("mysql_OperationTran() err:%d\n", ret); return ret; } #else ret = mysql_OperationTran(mysql); if (ret != 0) { printf("mysql_OperationTran() err:%d\n", ret); return ret; } #endif
ret = mysql_query(mysql, sql03); if (ret != 0) { printf("mysql_query() err:%d\n", ret); return ret; } ret = mysql_query(mysql, sql04); if (ret != 0) { printf("mysql_query() err:%d\n", ret); return ret; } ret = mysql_Rollback(mysql); if (ret != 0) { printf("mysql_Rollback() err:%d\n", ret); return ret; } mysql_close(mysql); return 0; }
|