2011年11月8日 星期二

在vb6中使用sqlite

引用
--
egsvr32 sqlite3.dll
随便是建一个bat文件运行,还是直接在开始菜单运行都可以
压缩文件包中有自动注册bat文件,sqlite3.dll,测试数据库,litex开发文档(英文)


新建表
Dim odb As Object
Set odb = CreateObject("LiteX.LiteConnection")
odb.open (App.Path & "\test.db")    '一开始直接建一个空白文件就可以用了

sql = "create table tab01(name text,nl integar)"   'sqlite数据库其实可以不用定义,但是为了以后的转移或者说明,定义下比较方便
odb.execute(sql)
odb.close


插入数据
Dim odb As Object
Set odb = CreateObject("LiteX.LiteConnection")
odb.open (App.Path & "\test.db")

sql = "insert into tab01 values('chen',5)"
odb.execute(sql)
odb.close

查询
Dim odb As Object
Set odb = CreateObject("LiteX.LiteConnection")
odb.open (App.Path & "\test.db")

Dim odb1 As Object
Set odb1 = CreateObject("LiteX.LiteStatement")
odb1.ActiveConnection = odb

label1=""
sql = "select * from tab01"
odb1.prepare (sql)

   For Each row In odb1.rows   '用.rows属性取出预查询的数据,插入到label1里面
   Label1 = Label1 & row(0) & "   " & row(1) & vbCrLf   '在这个其中row实际上为一个数组,下标从0开始
   Next

odb1.close 'prepare方法只能用一次,第二次用之前要关闭一下odb1,或者每用完一次就养成顺手关的好习惯
odb.close

'文档上说odb1这个状态变量可以直接用odb的prepare方法直接创建,但是我试了下,不知道为什么报错,所以改成手工定义,都一样,就是麻烦点
'本来不知道应该怎么定义row这个变量,在说明文档上被称为LiteX.LiteRow。后来试了下,可以定义为Variant,使用过程中没问题。
'本来想在程序中动态加载dll文件,也在网上找到动态加载的代码,但是不知道为什么报错,所以直接改成提前注册了

沒有留言:

張貼留言