Lazarus开发使用
sqlite的WinCE项目 2008-08-10 19:38
sqlite是一个开源的小型
数据库,它可以在WinCE上正常工作,本文讲述的,就是如何在WinCE开发中使用它。 首先,我们需要相关的开发工具,
sqlite没有可视化的管理工具,它提供了一个命令行下的工具,用于创建
数据库。下载了
sqlite3后,会找到
sqlite3.exe和
sqlite3.dll,其中EXE就是命令行工具了。 我们用命令来建立一个测试用的
数据库,如下:
sqlite3 myTest.db create table Demo(uid integer,uname varchar(50)); insert into Demo values(1,'a'); insert into Demo values(2,'b'); insert into Demo values(3,'c'); .quit 这时就能看到在
sqlite3.exe相同的目录下,
生成了myTest.db这个
文件,当然了,里面包含了一个名为Demo的表,要
查询表中
内容可以用以下语句
sqlite3 myTest.db select * from Demo; .quit 以上的命令是在PC上执行的,它借助了
sqlite3.dll完成相应的
功能,但是在Windows Mobile下,显然不能够使用PC上的dll,我们需要用源码自行编译相关的dll。 从SourceForge上下载到
sqlite-ce-source 3.3.3之后,解压,然后在VC6里新建一个Library工程,把source内除了tcl
sqlite.c外,所有的
文件添加到这个工程内,编译工程。编译后即
生成sqlite3.dll,这个dll可以放到Windows Mobile下使用了。 我使用的是VC6来编译
sqlite3.dll,您也可以用C++Builder,DEV C++,或是Visual Stu
dio 2008内的VC++.NET来编译这个dll,编译的
效果是一样的。 建好了
数据库之后,就要进行程序的开发了,我在此选择Lazarus进行开发。当然了,如果你喜欢用C++,Java或C#进行开发,也是一样的,用.NET或Java语言开发时,需要多下载一个对应的Wrapper,用原生语言开发则不需要多下载东西。 为了使程序体积更小,我们需要使用KOLCE,关于KOLCE的使用,请去以下帖子:点击进入 假设您已经会使用lazarus和KOLCE,那么下面就开始进行开发了。我们会碰到一个小小的问题,就是lazarus
自带的DB Connection
不支持sqlite。这时我们需要借助一套第三方的控件,那就是Zeos DBO。 ZeosDBO 是使用Delphi开发的一套强劲的数据操作控件,它也有Lazarus相关的版本,您可以从SourceForge上获得它,它是免费且开源的。 根据Zeos DBO的文档所述,在要Lazarus上安装只需要编译并安装ZComponents.lpk即可。安装时会
自动安装其余的4个包,Zeos DBO的安装时间相当的久,以我电脑4核+4G内存的配置都要将近5分钟才能安装完成,安装期间lazarus会发生没有响应的现象,系统反应也相当的慢,请不要在意,并耐心的等待。 安装Zeos DBO时,或许会发生另一个问题,如果您以前安装过KOLCE,那么会报一个KOL.o和KOL.ppu 重复存在的
错误,此时需要把MCK目录下的lib目录
删除,并重新编译KOLCE。 安装Zeos DBO成功后,会在控件面板上看到多出一组控件,如图所示: 下面我们可以进行真正的开发了,新建一个工程,设置窗口大小为240x320,这个分辨率是我的手机屏幕的大小,您可以跟据您的手机实际的分辨率来设置大小。然后往窗体上拖放一个TKOLList
Box,一个TZConnection,一个TZQuery。设置ZQuery的Connection
属性为ZConnection。 编写一些简单的
代码来完成数据的
查询和
显示。 可以看到,这些
代码与在Delphi中的操作非常类似。有几点需要注意: 1. KOLList
Box中,Items
属性是字符串,因此不能够Items.Clear,也不能够Items.Add()。能用的
方法只是List
Box.Clear和List
Box.Add。 2.
sqlite的
数据库必须使用完整的路径,不能使用相对路径。 3.
sqlite的
sql语句最后都必须带上分号,以示这一行语句结束。 好了,现在可以编译程序了。编译成功后,我们要运行程序,以测试程序工作是否正常。此时又会碰到一个问题,就是用Windows Mobile模拟器,无法将
数据库部署上去,也无法将相关的DLL部署上去。这个时候有两种
解决办法,一种是使用Microsoft ActiveSync,把相关
文件直接拷进模拟器,另一种就是拥有一台真实的Windows Mobile。我使用的是后一种
方法。 部署需要的东西很简单,刚才开发的程序,
sqlite3.dll,myTest.db,全部拷到手机里。然
后执行exe
文件。http://hi.baidu.com/xingfupingguo/blog/item/6a7df60aecfc7d1994ca6b66.html