《现代电子技术》2007年第8期摘录:庄宗辉等:嵌入式数据库SQLi
-
如发现有乱码,
请直接从这里浏览原文
正文摘录:庄宗辉等:嵌入式数据库SQLite在远程监控系统中的应用“<divalign=’center’>””<center>“”<tableborder=’1’width”<tr><tdalign=’center’”<tdalign一’center’width”<tdalign=’center’width=’500’>“width=’80’>设备ID</td>”=’80’>时间~/td>”=’80’>A相电压~/td>””<tdalign一’center’width一’80’>功率</td></tr>”);char”p2={”</table></center></div>””<Palign一’center’>””<ahref=’/histor·ata.html’>历史数据</a></p>””</body></html>”};ret=sqlite3一open(”Building.db”,l~db);//打开数据库if(ret){fprintf(stderr,”Can’topendatabase:%s\n”,sqlite3一errmsg(db));sqlite3一close(db);exit(1);)printf(”Content--type:text/html\n\n”);printf(”%s”,p1);ret—sqlite3exec(db.”SEI。ECT*FRoMrecords\n””or—derbyDatetimedesc\n…’limit10”,callback,NUI.I.,&errmsg);//执行数据查询,每次显示最近时间的前十行if(ret!一SQI。ITE0K)(fprintf(stderr,”SQLerror:%s\n”,errmsg);}sqlite3close(db);//关闭数据库printf(“%s”,p2);3.2SQLite应用程序交叉编译83C4510B是Samsung公司开发的一款性价比很高的无MMU的32位ARM处理器,而ttClinux是经过对标准I。inux内核的改动,专门针对没有MMu的CPU,适合嵌入式系统小型化应用。gClinux采用romfs文件格式,比IAnux的ext3文件格式需要更少的空间,但却继承了大部分Linux的优秀特性。为了将嵌有SQI,ite的CGI程序应用到$3C4510B+>Clinux开发平台上,必须对CGI程序进行交叉编译,然后下载到ARM开发板。因为交叉编译要用到romfs格式的libsqlite.a库文件,使得过程有点麻烦,主要步骤如下:(1)下载SQI.ite源代码:可以到SQI.ite的官方网站(http://www.sqlite.org/download.html),下载最新sQI。ite一3.3.7.tar.gz源代码包或者sQI。ite一2.8.17.tar.gz。本文以SQI,ite一3.3.7.tar.gz为例,进行说明。(2)将下载的软件包进行解压缩tarzxvfsqlite一3.3.7.tar.gz这时在用户目录下会有sqlite一3.3.6文件夹生成。(3)添加Makefile文件和修改main.mk文件交叉编译过程中,最重要的是写一个与tzClilnux相适应的Make—file文件。本文使用的t~Clinux是~Clinux—dist一20041215.tar.gz,交叉编译工具为arm—elf—tools一20030314.sh。完整的Makefile内容如下:TOP一../sqlite3.3.764BCC…gccg02CFI,AGS一一Wall—Os—g—Dlinux—DlinuxDunix—DuClinux—DEMBEDLDFLAGS一一W1.一elf2fitUSLEEP一一DHAVEUSLEEP一1THREADSAFE一一DTHREADSAFE一00PTS一一DNDEBUG一10PTS+一一DHAVEFDATASYNC一1TCC—arm—elf—gee—06AR—arm—elf—arcrRANI。IB—arm—elf—ranlibENCODlNG一1S08859NAWK—awkinclude$(TOP)/main.mk最后修改main.mk文件头部的TCCX为:TCCX一$(TCC)$(OPTS)$(THREADSAFE)$(USI。EEP)一I.一I$(TOP)/src$(CFI。AGS)$(I。DFI。AGS)再往下几行,找到I.IBOBJ中的tclsqlite.o并去掉他。这样全部修改完毕。(4)交叉编译cd/sqlite一3.3.7make这时会在sqlite一3.3.7文件夹中生成.romfs格式的sqlite3和静态链接库libsqlite3.a这两个最有用的东西。CGI程序的交叉编译如下:arm—elf—gee—WI.一elf2fh—oDisplay.egiDisplay.e—lsqlite3一L./sqlite一3.3.7交叉编译时需要用到的静态库文件就是前面生成libsqlite3.a,结果生成300kB的Display.cgi程序,通过NFS方法调试通过后,放到cgi—bin目录下,同内核一起编译后下载到开发板。4结语嵌入式数据库SQI。ite在楼宇配电监控系统中的应用,满足监控系统数据共享的管理要求。由于资源占用少、性能良好和零管理成本,嵌入式数据库大有用武之地。SQLite以他小巧的体积、快速高效、稳定可靠、易移植等优势将成为嵌入式数据库领域的新宠。加上免费开放源代码、没有版权限制,是一个值得推广的应用软件。[1]E23[3]E43参考文献http:/www.sqlite.org/arch.html.http://souptonuts.sourceforge.net/sqlite.ChrisNewman.SQI。ite[M].SamPublishing,2004.黄布毅,张晓华.基于ARM—Linux的SQLite嵌入式数据库技术EJ].单片机与嵌入式系统应用,2005(4):21—24.作者简介庄宗辉男.1976年出生,福州大学电气工程与自动化学院硕士研究生。研究方向为楼宇自动化、嵌入式技术应用。
阅读此文(图):
在线翻阅