当前位置: 首页 > news >正文

嵌入式学习39-程序创建数据库及查找

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*:                                                                                                                                                           数据库  句柄

句柄:                                                                                                                                                         是一个用来  标识对象或者项目标识符,可以用来描述窗体、文件等                                             还有注意  句柄(Handle) 不是常量
        sql:                                                                                                                                                           要执行的  SQL语句  字符串首地址
        callback: (回调函数)                                                                                                                                     只有在  select  时才会使用           (匹配数据)                                                                                其余  调用时传递   NULL
        void*:                                                                                                                                                          给 回调函数  的  传参
        errmsg:                                                                                                                                                          出错信息   存放空间首地址  (使用完毕后使用sqlite3_free释放空间)
    返回值:
        成功  返回  SQLITE_OK
        失败返回错误码 

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

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


 

http://www.lryc.cn/news/317396.html

相关文章:

  • 科研三维模型高精度三维扫描服务3d逆向测绘建模工业产品抄数设计
  • 【LeetCode热题100】141. 环形链表(链表)
  • express+mysql+vue,从零搭建一个商城管理系统11--使用Sequelize
  • 霹雳学习笔记——6.1 ResNet网络结构、BN以及迁移学习
  • Gitee的注册和代码提交(附有下载链接)
  • 机器学习是什么?
  • 复盘-PPT
  • springcloud gateway网关动态配置限流
  • 在Linux/Ubuntu/Debian中使用windows应用程序/软件
  • idea Springboot 组卷管理系统LayUI框架开发mysql数据库web结构java编程计算机网页
  • wordpress主题批量修改历史文章标题,文章内容
  • Unity2019.2.x 导出apk 安装到安卓Android12+及以上的系统版本 安装出现-108 安装包似乎无效的解决办法
  • 创建SpringCloudGateWay
  • 鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:StepperItem)
  • 游戏盾SDK是如何实现智能加速的?
  • 西井科技参与IATA全球货运大会 以AI绿动能引领智慧空港新未来
  • RPC通信原理(二)
  • Redis 淘汰策略
  • 游戏数据处理
  • Qt+FFmpeg+opengl从零制作视频播放器-14.程序Ubuntu移植
  • Go 语言中的 Cond 机制详解
  • 如何使用vue定义组件之——子组件调用父组件数据
  • 如何使用ArcGIS Pro生成带计曲线等高线
  • 蓝桥杯C++大学B组一个月冲刺记录2024/3/13
  • 计算机网络——Internet结构和ISP
  • E.接龙数列【蓝桥杯】/动态规划
  • cv2.cvtColor()将二维转化为彩色图像
  • 为什么 VSCode 不用 Qt 而要用 Electron?
  • 环信ChatroomUIKit功能详解——超详细介绍
  • 怎么读取springboot中的properties.yml配置文件里的配置值(亲测有效)