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

    浏览量

    16795
  • 开发板试用
    +关注

    关注

    3

    文章

    303

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    OK-MX9596-C开发板试用】②体验WIFI、蓝牙、音频、视频,为AI应用打下基础

    OK-MX9596-C开发板试用】①开箱图赏、跑分测试、yolo大模型箭齐发 -
    发表于 10-21 18:17

    基于瑞萨RZ/G2L微处理器的Ubuntu系统移植指南

    RZ/G2L微处理器配备Cortex-A55(1.2GHz)CPU、16位DDR3L/DDR4接口、带Arm Mali-G31的3D图形加速
    的头像 发表于 10-15 06:53 7827次阅读
    基于瑞萨<b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b>微处理器的Ubuntu系统移植指南

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

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

    【作品合集】合众HZ-T536开发板测评

    体验】3、移植星闪WS73模块 【HZ-T536开发板免费体验】4、使用蓝牙模块读取小米温湿度计的数据 【HZ-T536开发板免费体验】5、安装sq
    发表于 09-12 09:37

    【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 778次阅读
    送啦!<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 2998次阅读
    瑞萨<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 2316次阅读
    瑞萨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 2785次阅读
    基于瑞萨64位MPU <b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b>的uboot串口多波特率支持介绍

    T527N开发板试用T527N开发板开箱评测

    很高兴收到嵌入式申请的T527N开发板,板子的正反面如下图所示: 可以看到,板子上面的资源非常的丰富,有CAN,485, SIM卡槽
    发表于 07-04 11:43

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

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

    具有3D图形和视频编解码器的通用 MPU RZ/G2L 数据手册

    RZ/G2L 微处理器配备 Cortex-A55®(1.2GHz)CPU、16 位 DDR3L/DDR4 接口、使用 Arm® Mali-G31 的
    的头像 发表于 03-12 17:46 942次阅读
    具有<b class='flag-5'>3</b>D图形和视频编解码器的通用 MPU <b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b> <b class='flag-5'>数据</b>手册

    深入HarmonyOS NEXT开发中的ArkData操作SQLite数据库

    大家好,我是 V 哥。今天给大家整理的内容是关于鸿蒙 NEXT 开发中使用 ArkData 操作 SQLite 数据库的详细介绍,从入门到精通,包含案例代码和注释,帮助小白快速入门到提升。先赞后看,家财万贯。
    的头像 发表于 03-07 10:55 795次阅读

    适用于SQLite的dbExpress数据库驱动程序

    dbExpress Driver for SQLite 概述 dbExpress Driver for SQLite 是一个独立于数据库的层,它定义了通用的 接口提供从 Delphi 和 C++
    的头像 发表于 02-09 09:45 779次阅读

    瑞萨电子RZ MPU家族精品RZ/N2L产品介绍

    瑞萨生态合作伙伴RT-Thread推出了一款高性能、多功能以太网MPU开发板EtherKit,搭载瑞萨电子RZ/N2L,并携手瑞萨电子举办了产品发布会和产品研讨。瑞萨电子在本次活动中介绍了瑞萨明星
    的头像 发表于 12-23 14:10 1388次阅读
    瑞萨电子<b class='flag-5'>RZ</b> MPU家族精品<b class='flag-5'>RZ</b>/N<b class='flag-5'>2L</b>产品介绍