C中的“Factoring”SQLite DB连接

时间:2017-07-21 20:03:00

标签: c sqlite

不确定如何制定这个问题......我正在研究一个使用SQLite作为DB的程序。我的问题是我在每个查询中一遍又一遍地打开和关闭我的数据库,我想知道是否有一种方法可以用 C语言来避免它。

这是我在请求之前总是做的代码......我的代码是用函数处理的。

   char *err_msg = 0;
   sqlite3_stmt *res;

   int rc = sqlite3_open(db_name, &db);

   if (rc != SQLITE_OK) {

       fprintf(stderr, "Cannot open database: %s\n", sqlite3_errmsg(db));
       sqlite3_close(db);

       return 1;
   }

   char *sql = "SELECT * FROM table";

   rc = sqlite3_prepare_v2(db, sql, -1, &res, 0);

所以我的问题是,我每次想要创建新查询时,是否可以避免打开我的数据库并将其放在rc上?

是否可以在开始时一次打开它,将我的指针变量传递给每个函数并自动提交每个sql查询然后在程序的退出点关闭它?

1 个答案:

答案 0 :(得分:1)

只需创建一个单独的函数来打开数据库连接并将其存储在全局变量中。然后,只要您需要访问数据库,只需使用该全局。

退出之前,请调用另一个关闭数据库连接的函数。