大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE稳定放心使用
最近我接触了嵌入式数据库eXtremeDB,由于这方面资料很少,网上的参考资料都大同小异,只靠着软件本身提供的参考文档进行开发,所以刚开始开发有些困难。故将基本的用法整理一下。
关于eXtremeDB的特性,这里就不阐述了,直接从开发开始。下面以简单的模板为例进行阐述。
1. 构建.mco文件
打开记事本,然后另存为XX.mco后缀文件。.mco文件里面需要定义数据库所需的字段类型,名称等,里面可以定义结构体,矢量等。
#define int1 signed<1> // 这是对数据格式的声明 #define int2 signed<2> #define int4 signed<4> #define uint1 unsigned<1> #define uint2 unsigned<2> #define uint4 unsigned<4> #define uint8 unsigned<8> declare database testdb; // 声明数据库名称为testdb struct speed { float x; float y; }; persistent class Msg // 由于建立的数据库要存储在磁盘上,故设置为persistent { autoid[10000]; // 自动定义id vector<speed> acSpeed; // 以speed结构体为类型定义vector uint2 testState; double meter; float testRate; char <100> testInfo; uint8 timeStamp; tree<TimeStamp> tTimeStamp; // 以时间戳 建立树索引,以便后续的查询,这里面也可以设置hash,list 等 }; // 注意后面的分号";"不要落下
2. 生成.c .h文件
由于上述数据库声明为testdb,故利用DDL处理器会生成 testdb.c testdb.h文件。
将该XX.mco文件放在eXtremeDB文件目录下的\host\bin,然后打开dos,运行 mcocomp.exe -x32 -hpp XX.mco,会自动生成testdb.c testdb.h testdb.hpp 文件。
3. 添加进项目
1)将生成的testdb.h testdb.c 添加到 项目工程中;
2)然后将extremeDB文件夹下的include路径添加到该项目的path中。
3)如果该数据库代码是运行到嵌入式开发板上的,还需要在项目中添加extremeDB的.a文件,即extremeDB文件下的/target/bin/PENTIUM4gnu/下的.a文件
4.根据需求进行数据库开发
1) 初始化数据库:主要对数据库进行相关配置并建立连接,其中涉及到的函数如下:
mco_db_params_init() //对参数按照默认值进行初始化 mco_db_open_dev() //根据给定参数,打开已配置好的数据库 mco_db_connect() //连接数据库
2) 插入数据:
mco_trans_start() //开启事务,插入,删除,查询,都要在事务里进行 Msg_new() //新建数据库元素,Msg是上面定义的数据库表名 Msg_testState_put() //将数据放入到指定元素汇总 Msg_acSpeed_alloc() //设置vector元素个数 Msg_acSpeed_put() //获取第n个位置的元素地址 speed_x_put() //设置x值 speed_y_put() //设置y值 mco_trans_commit() //提交事务
3) 查询数据:
根据建立的索引,建立游标进行查询
4) 删除数据:
根据建立的索引,找到指定数据(里面提供了search find),然后delete删除
5)关闭数据库:
mco_db_disconnect() //断开连接 mco_db_close() //关闭数据库
转载于:https://www.cnblogs.com/ycbeginner/p/9398783.html
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/182160.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...