zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    四则运算
    屏蔽恶意IP
    Vue企业级优雅实战05-框架开发01-登录界面
    Vue企业级优雅实战04-组件开发01-SVG图标组件
    Vue企业级优雅实战03-准备工作04-全局设置
    Vue企业级优雅实战02-准备工作03-提交 GIT 平台
    802.11ax TWT
    leetcode338
    春招实习面经(已拿阿里/腾讯/亚马逊)
    leetcode weekly contest138
  • 原文地址:https://www.cnblogs.com/coolYuan/p/10599259.html
Copyright © 2011-2022 走看看