sqlite基础API

 
/* 打开/创建数据库文件
 * 如果数据库文件不存在就创建数据库文件。
 * 数据库操作句柄保存在第二个参数中。
 * 第一个参数:文件路径及其文件名
 * 第二个参数:sqlite3操作句柄
 * 返回值:SQLITE_OK表示成功
 */
int sqlite3_open(
  const char *filename,
  sqlite3 **ppDb
);

/* 执行sql语句
 * 第一个参数:数据库操作句柄
 * 第二个参数:sql语句
 * 第三个参数:回调函数
 * 第四个参数:传入回调函数的参数
 * 第五个参数:保存操作失败的错误信息
 * 返回值:SQLITE_OK表示成功      
 */
int sqlite3_exec(
    sqlite3 * ,
    const char *sql,
    int (*callback)(void *, int, char **, char **),
    void *,
    char **errmsg
);

/* 回调函数:
 * 第一个参数:承接sqlite3_exec第四个参数(回调函数参数)
 * 第二个参数:查询结果的条数
 * 第三个参数:查询结果key/value中的value
 * 第四个参数:查询结果key/value中的key
 */
int (*callback)(void *, int, char **, char **)

/* 释放申请的动态内存
 */
void sqlite3_free(void *);

/* 关闭数据库操作
 * 参数:数据库操作句柄
 */
int sqlite3_close(sqlite3 *);

 

简单应用:

 1 #include <sqlite3.h>
 2 #include <stdio.h>
 3 
 4 int main(void)
 5 {
 6     sqlite3 *db;
 7     char *err_msg = NULL;
 8     char *sql = "create table test_table(ID INT PRIMARY KEY NOT NULL, \
 9                  NAME TEXT NOT NULL, \
10                  AGE INT NOT NULL, \
11                  ADDRESS CHAR(50), \
12                  SALARY REAL);";
13     int ret;
14 
15     ret = sqlite3_open("test.db", &db);
16     if (ret != SQLITE_OK) {
17         printf("%s[%d] sqlite3_open error!\n", __func__, __LINE__);
18         goto error;
19     }   
20 
21     ret = sqlite3_exec(db, sql, NULL, NULL, &err_msg);
22     if (ret != SQLITE_OK) {
23         printf("%s[%d] sqlite3_exec error!\n", __func__, __LINE__);
24         goto error;
25     }   
26     char *tmp = "insert into test_table values(1,'test',1,'beijing', 1000);";
27     ret = sqlite3_exec(db, tmp, NULL, NULL, &err_msg);
28     if (ret != SQLITE_OK) {
29         printf("%s[%d] sqlite3_exec error!\n", __func__, __LINE__);
30         goto error;
31     }   
32 
33 error:
34 
35     if (err_msg) {
36         sqlite3_free(err_msg);
37     }   
38     if (db) {
39         sqlite3_close(db);
40     }   
41 
42     return 0;  
43 }

 编译:

1 gcc main.c -lsqlite3

 

posted @ 2019-03-26 12:01  insistYuan  阅读(468)  评论(0编辑  收藏  举报