0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【飞凌RZ/G2L开发板试用体验】第三篇 sqlite3数据库编程

开发板试用精选 来源:开发板试用 作者:电子发烧友论坛 2022-10-24 17:32 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文来源电子发烧友社区,作者:h1654155285.8644, 帖子地址:https://bbs.elecfans.com/jishu_2299992_1_1.html


一、前言
RZ/GL2型开发板内置了sqlite3数据库,该数据库是一款轻型的数据库,它占用资源非常的低,只需要几百K的内存就够了。本人研究项目中需要使用到数据库,借此机会利用开发板进行了sqlite数据库的学习。
本程序中建立数据库well.db,在数据库中建立两个表格,分别是Well1和Well2,表格内容包括时间、温度、压力、液位几个参数。由于该开发板没有使用于现场,因此温度、压力和液位三个参数均使用随机函数生成。程序比较简单,但是在编写过程中遇到一些问题,与大家共享。
由于仅仅是数据库的编程,没有外接显示设备,只是用网线将开发板与路由器连接,利用USB口与计算机连接。
5.jpg

二、程序编写
1、数据库的建立

ret = sqlite3_open("well.db", &db_well);   
 		if( ret )  
		{  
  				fprintf(stderr, "Can't open database: %sn", sqlite3_errmsg(db_well));  
  				sqlite3_close(db_well);  
  				exit(1);  
 		}
		else
		{
  				printf("Open well.db!n");  
 		}

使用sqlite3_open函数建立数据库,其中well.db是数据库的名称,db_well是该数据库的句柄。如果建立成功,将输出“Open well.db!”信息。
2、表格的建立
该数据库中建立了Well1和Well2两个表格,建立带入如下所示:

sql =" CREATE TABLE Well1( ID INTEGER PRIMARY KEY,  Time VARCHAR(17),  Temprature REAL,  Pressure REAL,  Liquid_level REAL);" ;  
sqlite3_exec(db_well , sql , 0 , 0 , &Msg );

程序中,首先将指令用ASCII码形式表示,然后用指令sqlite3_exec执行。如果要再建立Well2表格,只需将上述代码中的Well1换为Well2即可。指令中的ID INTEGER PRIMARY KEY, Time VARCHAR(17), Temprature REAL, Pressure REAL, Liquid_level REAL的分别表示序号、时间、温度、压力、液位几个参数,并且在指令中标注了不同的数据类型。
3、数据的产生
(1)时间的产生

time(&tmp);   
timp = localtime(&tmp);

timp中便是以结构体形式存储的时间,包括年月日时分秒等信息。
(2)随机数的产生

t=((rand()%(900-700))+700)/10.0;

上述指令用来产生700~900之间的一个随机数。按照此方法依次产生温度、压力、液位等随机数。
4、表格数据更新

sprintf(str,"INSERT INTO "Well1" VALUES(NULL , '%2d-%2d-%2d %2d:%2d:%2d', %.1f, %.1f, %.1f);", (timp->tm_year)%100, ( 1 + timp->tm_mon), timp->tm_mday, (timp->tm_hour), timp->tm_min, timp->tm_sec,t,p,l);
sqlite3_exec( db_well , str, 0 , 0 , &Msg );

上述指令用于表格数据的更新,即首先将指令以ASCII码的形式存于str,再用sqlite3_exec指令执行。在运行过程中,遇到两个问题:
(1)sprintf指令执行中,总是提示“Segmentation Fault”,经过查阅质量,将str定义为静态变量,才没有报错。
(2)时间要以ASCII码形式存储,在str中要使用单引号。
三、程序运行
将程序编译通过,通过SSH拷入开发板后,执行,出现以下界面:
1.png
每秒钟提示一个时间。而且,提示数据库建立完成。
利用sqlite打开well.db数据库,如下图所示。
2.png
打开well1表格,展示内容如下图所示:
3.png
打开well2表格,展示内容如下:
4.png
通过上述两图可以看出,两个表格均正确存储内容。此外,利用数据库的优势,还可以对数据进行插入、查询、删除等操作,在这里不再演示。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 飞凌
    +关注

    关注

    0

    文章

    135

    浏览量

    16941
  • 开发板试用
    +关注

    关注

    3

    文章

    303

    浏览量

    2786
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    嵌入式RV1126B开发板试用体验】初识嵌入式RV1126B开发板

    /FET1126BJ-S 核心,OK1126BJ-S开发板嵌入式RV1126B集成 4 个 ARM Cortex-A53 高性能核心,具备
    发表于 04-13 17:27

    RZ/G2LRZ/G2LC系列MPU深度解析:硬件设计开发的新选择

    RZ/G2LRZ/G2LC系列MPU深度解析:硬件设计开发的新选择 在电子工程师的日常工作中,选择合适的微处理器单元(MPU)对于项目的成
    的头像 发表于 04-01 11:45 195次阅读

    嵌入式RV1126B开发板试用体验】+ 4. “小龙虾”openClaw部署(2)--openClaw部署和测试

    /jishu_2512063_1_1.html 第三篇:【嵌入式RV1126B开发板试用体验】+ 3
    发表于 03-23 10:56

    嵌入式RV1126B开发板试用体验】+ 3. “小龙虾”openClaw部署(1)--openClaw下载与编译

    本帖最后由 slmxiaodai_163 于 2026-3-23 09:49 编辑 接着 第一:【嵌入式RV1126B开发板
    发表于 03-23 00:11

    嵌入式RV1126B开发板】+基本功能测试2

    SQLite3是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,占用资源低。在OK1126B开发板,移植了3.44.2版本的sqlit3
    发表于 03-07 00:07

    嵌入式RV1126B开发板】+两款开发板之比较

    用户二次开发。 就开发工具而言,可支持ubuntu与docker、支持在线交叉编译环境及纯Python开发方式。 就开发板的外观及功能来看,分别如图1和图
    发表于 03-05 23:32

    Renesas RZ/G2L, RZ/V2L SMARC模块硬件设计解析

    Renesas RZ/G2L, RZ/V2L SMARC模块硬件设计解析 在嵌入式系统开发领域
    的头像 发表于 12-30 09:35 1697次阅读

    Renesas SMARC EVK 开发板启动指南

    Renesas SMARC EVK 开发板启动指南 在嵌入式开发领域,Renesas 的 RZ/G2LRZ/
    的头像 发表于 12-29 16:15 529次阅读

    【作品合集】嵌入式OK527N-C开发板测评

    针对不同的功能做了深度优化,方便用户二次开发的同时简化用户设计,为您的项目提供良好的评估及设计依据。 活动详情地址:OK527N-C开发板免费
    发表于 09-22 15:54

    【HZ-T536开发板免费体验】5、安装sqlite3和使用golang读写数据库

    如果想在嵌入式设备上实现简单的设备管理功能,需要数据库和服务后端程序。服务端程序,我更倾向使用golang来实现。 安装sqlite3,使用ubuntu环境,可以直接用apt install安装程序
    发表于 08-26 00:04

    送啦!嵌入式联合NXP邀您参加OK-MX9596-C开发板试用活动

    送啦!嵌入式联合NXP邀您参加OK-MX9596-C开发板试用活动
    的头像 发表于 08-22 08:03 1145次阅读
    送啦!<b class='flag-5'>飞</b><b class='flag-5'>凌</b>嵌入式联合NXP邀您参加OK-MX9596-C<b class='flag-5'>开发板</b><b class='flag-5'>试用</b>活动

    瑞萨RZ/G2L MPU的DDR配置(1)

    RZ/G2L微处理器配备Cortex-A55(1.2GHz)CPU、16位DDR3L/DDR4接口、带Arm Mali-G31的3D图形加速
    的头像 发表于 08-04 13:40 3471次阅读
    瑞萨<b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b> MPU的DDR配置(1)

    瑞萨MCU方案:瑞萨RZ/G2L Bootloader单独编译方法详解

      RZ/G2L微处理器配备Cortex -A55(1.2 GHz)CPU、16位DDR3L/DDR4接口、带Arm Mali-G31的3D
    的头像 发表于 07-08 14:47 2988次阅读
    瑞萨MCU方案:瑞萨<b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b> Bootloader单独编译方法详解

    基于瑞萨64位MPU RZ/G2L的uboot串口多波特率支持介绍

    本文主要介绍基于瑞萨64位MPU RZ/G2L,讨论uboot下非常规波特率115200的支持方法,用于解决客户对uboot下特殊波特率的需求,供客户参考。
    的头像 发表于 07-04 15:54 3234次阅读
    基于瑞萨64位MPU <b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b>的uboot串口多波特率支持介绍

    基于瑞萨64位MPU RZ/G2L进行32位应用软件开发

    本文主要介绍基于瑞萨64位MPU RZ/G2L进行32位应用软件开发的介绍,用于解决客户32位软件移植相关问题,供客户参考。
    的头像 发表于 06-26 15:48 2192次阅读
    基于瑞萨64位MPU <b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b>进行32位应用软件<b class='flag-5'>开发</b>