博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
eXtremeDB 简单开发
阅读量:5962 次
发布时间:2019-06-19

本文共 1975 字,大约阅读时间需要 6 分钟。

最近我接触了嵌入式数据库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;                       // 声明数据库名称为testdbstruct speed {  float x;  float y;  };persistent class Msg                // 由于建立的数据库要存储在磁盘上,故设置为persistent{    autoid[10000];                             // 自动定义id    vector
acSpeed;             // 以speed结构体为类型定义vector uint2 testState; double meter; float testRate; char <100> testInfo; uint8 timeStamp; tree
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

你可能感兴趣的文章
mysql5.6参数说明
查看>>
[转]线程安全的单例模式
查看>>
winfrom的打开窗口特效
查看>>
IOS(swift)-数据存储 · NSKeyedArchiver 归档
查看>>
TypeScript 入门指南
查看>>
mysql报错 Data truncated for column 'from' at row 1
查看>>
Monkey test确定package name的一种特殊方法
查看>>
ECShop 调用自定义广告
查看>>
Eigrp基本知识汇总
查看>>
ubuntu 12.04.4 安装 devstack
查看>>
windows10:一些虚拟化功能与vmware冲突
查看>>
我的友情链接
查看>>
最佳的移动广告平台--KeyMob
查看>>
Absent Code attribute in method that is not native
查看>>
JavaScript 时间日期处理库
查看>>
iptables
查看>>
linux下及Aix下编译命令总结
查看>>
Python爬虫实战(3):安居客房产经纪人信息采集
查看>>
我的友情链接
查看>>
Java Network Programming, Third Edition
查看>>