vb6 操作SQLLITE



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

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

然后我们需要的仅仅是使用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

我们使用sqlit3.dll里的第一个对象:LiteX.LliteConnection

    Set oDB = CreateObject("LiteX.LiteConnection")
    'oDB.Version----SQLite版本
    oDB.open (App.Path & "\test.db")
   
    oDB.Execute ( strsql )
     'strsql 的执行可能会返回值和返回影响行数。
    '原话是这样的:
    'If query doesn't returns any result empty value is returned.
     'If query returns one or more rows first row is returned as ROW property of statement object does.
    
    ’oDB.changes----SQLite里的表被改变的行数
     ‘oDB.Path----SQLite的安装路径    
    
    oDB.Close




新建表
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 rs As Object
Set odb = CreateObject("LiteX.LiteConnection")
odb.open (App.Path & "\test.db")

Dim rs As Object
Set rs = CreateObject("LiteX.LiteStatement")

rs.ActiveConnection = odb
    Call rs.Prepare(sql)
   
    rs.Step
    '   如果有记录
    If Not rs.Done Then
       
        '   循环读取记录
        Do While Not rs.Done
           
            '   显示记录
            MsgBox rs.ColumnValue(0)
            '   游标下移下条数据
            rs.Step
        Loop
    End If

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



  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值