• vb+SQLite学习记录


    参照学习:

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

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

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

    编程前要先注册一下sqlite,使用的是litex的编译版本,是sqlite3.5.7的版本
    regsvr32 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
    odb.close

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

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

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

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

    一种比较良好的操作方式是在程序中加载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

  • 相关阅读:
    TWaver网元动态转动效果
    替换TWaver中Tree展开合并图标
    MOSS 2010:Visual Studio 2010开发体验(10)——列表开发之内容类型
    MOSS 2010:Visual Studio 2010开发体验(8)——Silverlight应用
    MOSS 2010:Visual Studio 2010开发体验(13)——列表开发之列表实例
    MOSS 2010:Visual Studio 2010开发体验(5)——Mapped Folder
    MOSS 2010:Visual Studio 2010开发体验(6)——开发WebPart
    MOSS 2010:Visual Studio 2010开发体验(7)——AJAX Web Part
    MOSS 2010:Visual Studio 2010开发体验(11)——扩展SharePoint Explorer
    MOSS 2010:Visual Studio 2010开发体验(12)——列表开发之列表定义
  • 原文地址:https://www.cnblogs.com/coffee_cn/p/1721096.html
Copyright © 2020-2023  润新知