- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SQLite。源代码开发、用C语言实现的数据库、支持跨平台。
LabVIEW访问SQLite数据库接口研究
【摘要】 本文介绍了LabVIEW环境下利用API技术访问开源数据库SQLite的方法,实现了可跨平台操作的数据库。采用此种方法完成了对过程控制中历史数据的保存、数据分析等数据库访问管理,并取得了较好的效果。
【关键字】LabVIEW SQLite 数据库 Vxworks 跨平台数据库
利用LabVIEW开发应用软件时经常需要对数据库访问,尤其是在过程控制中要大量保存历史数据。通过数据库访问技术,用户可以方便的创建一个使用数据库来管理大量数据,存储过程数据并且能够分析过程结果的自动控制系统。但是LabVIEW本身并不具备数据库访问功能。据作者所知,目前常见的解决这个问题的工具包都是利用LabVIEW的ActiveX功能,把调用Microsoft ADO控件,和SQL语言对数据库的访问进行了不同程度封装。 使得即使不了解Microsoft ADO控件以及SQL语言也可以操作数据库。
由于这些工具包都是基于ADO控件的,而ADO是Windows系统的一个数据库访问控件,只能运行在Windows平台上,并不支持跨平台应用。作者近来在做的一个项目用的是Vxworks的系统环境,现有的数据库工具包不在适用。在这里我们引入了SQLite数据库。
SQLite数据库简介
SQLite第一个Alpha版本诞生于2000年5月 SQLite是一款轻型的数据库遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等主流的操作系统,同时能够跟很多程序语言相结合,比如Tcl、C#、PHP、Java等,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。零配置:不用安装和管理配置。并且独立,不需要额外依赖,只要有一个编译好的动态库文件即可。
存储在单一文件中的完整数据库,而且不受不同操作系统字节顺序的影响;数据库转移不需要格式转换。
支持SQL语言,数据库操作简单,方便程序移植。
数据库可以很大,最大可以到2TB。虽然不可能会用的那么大。起码没有以前遇到的2GB的限制。
提供完整的API应用。使用简单。提供源代码,可以根据需要重编译应用于其他平台。
通过LabVIEW对SQLite数据库访问操作
SQLite数据库提供了完成的API接口,我们这里通过LabVIEW的API接口功能(调用库函数节点)来实现对SQLite数据库的操作。这里我们需要一个已编译的动态链接库。由于SQLite是开源的,其源代码可以通过上去下载,并根据运行目标编译不同的动态链接库。这里需要强调的是由于我们的开发平台是Windows系统,需要同时编一个可用于Windows系统的动态链接库DLL。以便开发使用和调试。
SQLite数据的基本操作流程
图1:SQLite数据库操作基本步骤
一次完成的SQLite数据库操作包括1、打开(没有为自动新建)数据库;---2、编译SQL语句。由于SQLite不能直接执行SQL指令,需要将SQL指令编译成字节码。3、执行操作4、获取执行结果;5、销毁SQL指令字节码;6、关闭数据库。
新建(或者打开已有)数据库
A、打开(新建)数据库
打开数据库用到的是sqlite3_open()。函数原型如下:
int sqlite3_open(const char *filename, /* Database filename (UTF-8) */sqlite3 **ppDb /* OUT: SQLite db handle */);
用这个函数开始数据库操作。 需要传入的参数是数据库文件的完整路径,比如:c:\Test_Database.db。
注:文件名不需要一定存在,如果此文件不存在,SQLite会自动建立它。如果它存在,就尝试把它当数据库文件来打开。sqlite3 ** 返回的是数据库的操作句柄(引用),是一个32位有符号整型数据。函数返回值表示操作是否正确,如果返回SQLITE_OK(0) 则表示操作正常。
int sqlite3_prepare(
sqlite3 *db, /* Database handle */
const char *zSql, /* SQL statement, UTF-8 encoded */
int nByte, /* Maximum length of zSql in bytes. */
sqlite3_stmt **ppStmt,
您可能关注的文档
- OK系列新产品介绍及其在机器视觉中的应用 - 北京嘉恒中自图像技术 .PPT
- OLAP 在地下工程监测中的初步应用 - 岩土力学.PDF
- OPC 客户端设计及其在智能立体车库中的应用 - 兰州交通大学.PDF
- OPC 标准驱动程序实现方法.PDF
- OEM的合作伙伴 - Literature Library - Rockwell Automation.PDF
- OPNET 实验中宿主机与虚拟机访问的操作步骤.PDF
- Open eVision 通用图像处理库标记检验库.PDF
- Open Inventor 应用于石油天然气、采矿和地理科学.PDF
- openstackI - 重庆大学智能服务与软件工程中心.PPT
- NAS 103 网络唤醒- Wake-on-LAN.PDF
- SQL Server 2000 安全工具指南 - Microsoft.DOC
- SSL 312 快速安装手册 - (NETGEAR) - 技术支持.DOC
- STN液晶显示屏的结构与原理 - 中显液晶.DOC
- STM扫描穿隧显微术之基本原理与架构.PPT
- Sun 与德州大学共创独一无二的远程兆兆级规模虚拟化超级计算机.PDF
- SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML, 数据 .DOC
- SrCe Yb O 的制备及其质子导电特性.PDF
- SWIFTBROADBAND 常见问题解答 - Satcom Direct.PDF
- SX-2000A 数字影院服务器与一体式媒体模块.PDF
- Swiss textile testing and certification 纺织品检定 - OETI.PDF
文档评论(0)