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

    文章

    134

    浏览量

    16100
  • 开发板试用
    +关注

    关注

    3

    文章

    301

    浏览量

    2041
收藏 人收藏

    评论

    相关推荐

    RZ/G2L高速虚拟串口方案 基于瑞萨RZ/G2L SMARC开发板的虚拟(Virtual UART)实现方案

    RZ/G2L具有丰富的外设,比如千兆以太网,CANFD以及丰富的UART接口,可以满足工业数据收集处理相关的应用。本文主要介绍基于瑞萨RZ/G2L
    发表于 11-20 14:41 231次阅读
    <b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b>高速虚拟串口方案 基于瑞萨<b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b> SMARC<b class='flag-5'>开发板</b>的虚拟(Virtual UART)实现方案

    RZ/G2L串口SCI的使用(下)

    RZ/G2L串口SCI的使用
    的头像 发表于 08-03 08:06 477次阅读
    <b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b>串口SCI的使用(下)

    RZ/G2L串口SCI的使用(上)

    RZ/G2L串口SCI的使用
    的头像 发表于 07-25 08:06 486次阅读
    <b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b>串口SCI的使用(上)

    RZ/G2L Demo调试经验流程分享(1)

    r01us0553ej0107-rz-g(Release Note).pdf,r01us0556ej0102-rz-g(Board_StartUp_Guide_smarcEVK).pdf,对SMARC EVK of RZ/
    的头像 发表于 05-06 14:25 610次阅读
    <b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b> Demo调试经验流程分享(1)

    RZ/G2L SD卡启动环境变量存储设置

    RZ/G2L微处理器配备Cortex-A55(1.2 GHz)CPU、16位DDR3L/DDR4接口、带Arm Mali-G31的3D图形加
    的头像 发表于 03-21 13:56 530次阅读
    <b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b> SD卡启动环境变量存储设置

    RZ/G2L微处理器DDR ECC功能和机制概要

    RZ/G2L微处理器配备Cortex®-A55 (1.2 GHz) CPU、16位DDR3L/DDR4接口、带Arm Mali-G31的3D
    的头像 发表于 02-28 13:44 1235次阅读
    <b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b>微处理器DDR ECC功能和机制概要

    【米尔-瑞萨RZ/G2UL开发板】1.开箱

    【米尔-瑞萨RZ/G2UL开发板】1.开箱 开箱视频 开箱也许会迟到,但是绝对不会缺席。今天开箱的是米尔-瑞萨 RZ/G2UL
    发表于 02-04 23:38

    RZ/G2LRZ/G2LC和RZ/G2UL的SMARC EVK启动指南Rev.1.01

    电子发烧友网站提供《RZ/G2LRZ/G2LC和RZ/G2UL的SMARC EVK启动指南Re
    发表于 02-02 09:45 1次下载
    <b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b>、<b class='flag-5'>RZ</b>/<b class='flag-5'>G2</b>LC和<b class='flag-5'>RZ</b>/<b class='flag-5'>G2</b>UL的SMARC EVK启动指南Rev.1.01

    米尔RZ/G2L开发板瑞米派双核A55Remi Pi学习兼容树莓派扩展模块

    RemiPi瑞萨第一款MPU生态板卡兼容树莓派扩展模块瑞萨RZ/G2L工业级处理器,便于企业客户产品开发;RemiPi兼容树莓派所有配件,方便产品原型搭建和创新应用;更多的工业接口,兼顾开发
    发表于 01-29 17:05 4次下载

    瑞萨RZ/G2L串口SCI的使用(上)

    瑞萨RZ/G2L的串口简称SCI,全称Serial Communication Interface。
    的头像 发表于 01-17 12:19 1458次阅读
    瑞萨<b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b>串口SCI的使用(上)

    RZ/G2L RZ/G2LC RZ/G2UL用灵活的软件包设置GPIO

    电子发烧友网站提供《RZ/G2L RZ/G2LC RZ/G2UL用灵活的软件包设置GPIO.pd
    发表于 01-14 10:53 0次下载
    <b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b> <b class='flag-5'>RZ</b>/<b class='flag-5'>G2</b>LC <b class='flag-5'>RZ</b>/<b class='flag-5'>G2</b>UL用灵活的软件包设置GPIO

    RZ/G2L RZ/G2LC RZ/G2UL RZ/G3S灵活软件包应用说明

    电子发烧友网站提供《RZ/G2L RZ/G2LC RZ/G2UL
    发表于 01-14 10:46 1次下载
    <b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b> <b class='flag-5'>RZ</b>/<b class='flag-5'>G2</b>LC <b class='flag-5'>RZ</b>/<b class='flag-5'>G2</b>UL <b class='flag-5'>RZ</b>/<b class='flag-5'>G3</b>S灵活软件包应用说明

    RZ/G2L Linux系统如何添加新的内核模块

    RZ/G2L Linux系统的镜像基于yocto构建,本篇介绍如何添加新的内核模块。
    的头像 发表于 01-04 12:19 1706次阅读
    <b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b> Linux系统如何添加新的内核模块

    OK113i-S开发板试用】开机测评--软件测试

    OK113i-S开发板试用】开机测评--软件测试
    发表于 12-25 11:03

    OK113i-S开发板试用】开机测评--硬件

    OK113i-S开发板试用】开机测评--硬件 一,开箱见图 包装精致 注意:上面红黄的先是本人接上的 配了电源线和一根usb线一根天
    发表于 12-24 20:51