vb+SQLite学习记录


« 博客园首页

vb+SQLite学习记录

参照学习:

http://www.sqlite.org/sqlite.html

这样做的好处?那是显而易见的,因为程序动态的加载dll比注册dll更方便。我们所要体现的中心思想始终是最简单化的用户操作。而且就我个人而言,系统中注册了大量的dll本身也觉得缺少美感,如果系统重装那就什么都没了。不是吗?

一种比较良好的操作方式是在程序中加载sqlite3.dll,然后操作数据库。使用的是litex提供的sqlite3.dll。


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


新建表
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

编程前要先注册一下sqlite,使用的是litex的编译版本,是sqlite3.5.7的版本
regsvr32 sqlite3.dll
随便是建一个bat文件运行,借是间接在开端菜单运行都可以
压缩文件包中有自动注册bat文件,sqlite3.dll,测试数据库,litex开发文档(英文)

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
odb.close

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

http://hi.baidu.com/jt09/blog/item/35f557ae272451735cc77dd92aae.html

vb6.0操作SQLite数据库之一(动态加载sqlite3.dll)

http://hi.baidu.com/gantianamin2001/blog/item/d8bf952aba2eb99f033bf6d6.html

文章1(借没有来得及测试)

文章2(测试没有搞定,借需要继续努力研究)

然后我们需要的仅仅是使用LoadLibrary去加载一下。
使用LoadLibrary,我们必须先预定义LoadLibrary的方法,他是Windows API的一部分,需要进行预定义。

Private Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long
Private Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
Private Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lpProcName As String) As Long
Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Any, ByVal wParam As Any, ByVal lParam As Any) As Long

然后就很简单了。

    Dim lb As Long
    lb = LoadLibrary(App.Path & "\sqlite3.dll")
   
    Dim oDB As Object
    Set oDB = CreateObject("LiteX.LiteConnection")
    TextSQLiteVersion.Text = oDB.Version
    oDB.open (App.Path & "\test.db")
   
    oDB.Execute ("insert into testtable values(2, 'laoma', 20)")
   
    TextSQLiteChanges.Text = oDB.changes
    TextSQLitePath.Text = oDB.Path

    oDB.Close

》点击查看本文...



引文来源  vb+SQLite学习记录 - 博客文库 - 博客园

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值