int main(void) { const char* dbaddr = "127.0.0.1:16811"; const char* dbname = "inc365_antispam_db"; const char* dbuser = "******", *dbpass = ""; acl::db_mysql db(dbaddr, dbname, dbuser, dbpass); // 允许将错误日志输出至屏幕 acl_msg_stdout_enable(1); if (db.open(NULL) == false) { printf("open db(%s) error\r\n", dbname); getchar(); return 1; } printf("open db %s ok\r\n", dbname); int ret = tbl_select(db); if (ret >= 0) { printf(">>select ok\r\n"); } else printf(">>select error\r\n"); printf("mysqlclient lib's version: %ld, info: %s\r\n", db.mysql_libversion(), db.mysql_client_info()); return 0; }
int main(void) { acl::string dbfile("测试.db"); acl::db_sqlite db(dbfile); int max = 100; if (db.open() == false) { printf("open dbfile: %s error\r\n", dbfile.c_str()); getchar(); return 1; } printf("open dbfile %s ok\r\n", dbfile.c_str()); if (tbl_create(db) == false) { printf("create table error\r\n"); getchar(); return 1; } // 配置数据库引擎 db.set_conf("PRAGMA synchronous = off"); db.set_conf("PRAGMA encoding = \"UTF-8\""); acl::string buf; if ((db.get_conf("PRAGMA encoding", buf))) printf(">>PRAGMA encoding: %s\r\n", buf.c_str()); db.show_conf(); acl::meter_time(__FILE__, __LINE__, "---begin insert---"); for (int i = 0; i < max; i++) { bool ret = tbl_insert(db, i); if (ret) printf(">>insert ok: i=%d, affected: %d\r", i, db.affect_count()); else printf(">>insert error: i = %d\r\n", i); } printf("\r\n"); printf(">>insert total affect: %d\n", db.affect_total_count()); acl::meter_time(__FILE__, __LINE__, "---end insert---"); acl::meter_time(__FILE__, __LINE__, "---begin select---"); int n = 0; for (int i = 0; i < max; i++) { int ret = tbl_select(db, i); if (ret >= 0) { n += ret; printf(">>select ok: i=%d, ret=%d\r", i, ret); } else printf(">>select error: i = %d\r\n", i); } printf("\r\n"); printf(">>select total: %d\r\n", n); acl::meter_time(__FILE__, __LINE__, "---end select---"); acl::meter_time(__FILE__, __LINE__, "---begin delete---"); for (int i = 0; i < max; i++) { bool ret = tbl_delete(db, i); if (ret) printf(">>delete ok: %d, affected: %d\r", i, (int) db.affect_count()); else printf(">>delete error: i = %d\r\n", i); } printf("\r\n"); printf(">>delete total affected: %d\n", db.affect_total_count()); acl::meter_time(__FILE__, __LINE__, "---end delete---"); printf("Enter any key to exit.\r\n"); getchar(); return 0; }
void* run() { int n = 0; for (int i = 0; i < max_; i++) { acl::db_handle* db = pool_.peek_open(); if (db == NULL) { printf("peek db connection error\r\n"); break; } bool ret = tbl_insert(*db, i); if (ret) { printf(">>insert ok: i=%d, affected: %d\r", i, db->affect_count()); n++; } else printf(">>insert error: i = %d\r\n", i); pool_.put(db); } printf("\r\n"); printf(">>insert total: %d\r\n", n); n = 0; // 批量查询数据 for (int i = 0; i < max_; i++) { acl::db_handle* db = pool_.peek_open(); if (db == NULL) { printf("peek db connection error\r\n"); break; } int ret = tbl_select(*db, i); if (ret >= 0) { n += ret; printf(">>select ok: i=%d, ret=%d\r", i, ret); } else printf(">>select error: i = %d\r\n", i); pool_.put(db); } printf("\r\n"); printf(">>select total: %d\r\n", n); // 批量删除数据 for (int i = 0; i < max_; i++) { acl::db_handle* db = pool_.peek_open(); if (db == NULL) { printf("peek db connection error\r\n"); break; } bool ret = tbl_delete(*db, i); if (ret) printf(">>delete ok: %d, affected: %d\r", i, (int) db->affect_count()); else printf(">>delete error: i = %d\r\n", i); pool_.put(db); } printf("\r\n"); return NULL; }