• 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
    );
    
    /* 释放申请的动态内存
     */
    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!
    ", __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!
    ", __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!
    ", __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 }
  • 相关阅读:
    my ReadBook_dianzishangwu / 2020216 / dianzishangwuwuliu
    my ReadBook_shichangyingxiao / 2020208
    C#编写的clock
    Java建立JProgressBar
    java基本类型byte的取值范围
    正则表达式整理大全
    (C#)如何利用Graphics画出一幅图表
    设置鼠标可以移动窗体
    Java编程提高性能的26个方法
    数据加密工具设计经验
  • 原文地址:https://www.cnblogs.com/coolYuan/p/10599259.html
Copyright © 2020-2023  润新知