嵌入式学习day37 数据库

本文介绍了SQLite库的三个主要函数:sqlite3_open用于建立数据库连接,sqlite3_close负责关闭连接,sqlite3_exec用于执行SQL语句。同时,讲解了如何使用gdb进行代码调试,特别是在遇到段错误时生成并分析core文件的过程。
摘要由CSDN通过智能技术生成

1.sqlite3_open
    int sqlite3_open(
        const char *filename,   /* Database filename (UTF-8) */
        sqlite3 **ppDb          /* OUT: SQLite db handle */
    );
    功能:
        打开数据库文件(创建一个数据库连接)
    参数:
        filename:数据库文件路径 
        ppDb:操作数据库指针存放空间的首地址
    返回值:
        成功返回SQLITE_OK
        失败返回错误码

2.sqlite3_close 
    int sqlite3_close(sqlite3*);
    功能:
        关闭数据库连接

3.sqlite3_exec 
    int sqlite3_exec(
        sqlite3*,                                  /* An open database */
        const char *sql,                           /* SQL to be evaluated */
        int (*callback)(void*,int,char**,char**),  /* Callback function */
        void *,                                    /* 1st argument to callback */
        char **errmsg                              /* Error msg written here */
    );
    功能:
        执行一条SQL语句
    参数:
        sqlite3*: 数据库句柄
        sql: 要执行的SQL语句字符串首地址
        callback: 只有在select时才会使用,其余调用时传递NULL
        void*: 给回调函数的传参
        errmsg:出错信息存放空间首地址(使用完毕后使用sqlite3_free释放空间)
    返回值:
        成功返回SQLITE_OK
        失败返回错误码 

每找到一次数据就会调用一次callback

callback的参数:1.void*是exec函数中第四个参数,将这个参数传到callback中,    2.int是找到有几列的列数col,  3.pcontent是找到的那几列数据字符串首地址的指针数组  4.ptitle是找到的那几列数据的标题的字符串首地址的指针数组  

练习:
    实现将dict.txt文件中的所有单词和含义插入到数据库中

5.调试段错误:
    1.根据给定链接设置系统允许生成core文件
    2.编译代码时加入-g选项
        gcc filename.c -g -lsqlite3 
    3.执行代码让代码产生段错误(会生成一个包含错误信息的core文件)
    4.使用gdb调试core文件
        gdb a.out core 
    5.可以直接看到产生段错误的代码的位置
 

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值