數據庫(VFB教程3-4)

  勇芳 2018-2-18 7133

此處為VisualFreeBasic編程教程(從零開始學或VB進階)的子章節部分,全部目錄點鏈接。

如果,你只是保存少量數據,如軟件的配置,設置等等,可以考慮用 INI

QQ截圖20180218104457.jpg

使用也很簡單,基本上就讀和寫。

讀取
aa=INI_GetKey("文件名.INI","組名稱","字段","默認值")  默認值是當這字段不存在時,返回給 aa 的值
寫入
INI_SetKey("文件名.INI","組名稱","字段","數據值")   寫數據,如果"數據值"為空,將會刪除此字段

如果,文件不存在,將會自動創建

其它函數是,整組讀取,整組刪除,很簡單,要用到時看下函數參數。

假如有大量數據,那就要用到數據庫引擎了。

微軟有 ACC數據庫,用ADO數據庫引擎操作,來到了VFB,當然要用比它好用,且0配置的,不需要其它支持的SQLite數據庫了。

除非很念舊,很固執,必須用ACC,不然,我們必須用非常好的SQLite數據庫。原來的ACC數據庫,可以用SQLite管理軟件來轉換

QQ截圖20180218111102.jpg

想要用數據庫,必須要有個非常好用,操作簡單的數據庫管理軟件,Navicat 是業內世界上數一數二的管理軟件,外國的且是收費的,在天朝,大家懂的,隨便用。

想要用好數據庫,必須得學習 SQL 語法,這是數據庫語言,不管你是寫網頁,寫電腦軟件,寫手機軟件,這 SQL是通用的,

我們不需要深入學習SQL,但是基礎是必須的,需要購買本SQL的書,好好學習。

關于SQL學習和管理器軟件使用,本文不提了,只說與VFB相關的。

引用文件(推薦放在 FF_AppStart 模塊里,或放在當前模塊最前面)

QQ截圖20180421095924.jpg

#Include Once "sqlite3.bi"

打開數據庫

Print StrToWStr("")    '如果你代碼中沒用到此函數,就需要引用下函數,不然會報錯
Print wStrToUtf8("", 0) '如果你代碼中沒用到此函數,需要引用下函數,不然會報錯
Dim db As SQLite3 Ptr 'DB 為后面使用數據用
SQLiteOpen db,"數據庫文件","密碼,無密碼此參數省略"

關閉數據庫

SQLiteClose db

執行SQL

SQLiteExec db,"SQL語句"   '文字編碼是 Utf8,而SQLiteExec會自動轉換,不需要我們轉換

查詢數據

Dim sql As String ,rs() As String
sql="SELECT * FROM 表名 WHERE 條件  LIMIT 獲取行數"  '文字編碼是 Utf8,而SQLiteSelect會自動轉換,不需要我們轉換
SQLiteSelect( DB,Sql,rs())

查詢來的 RS() 是二維數組 第0列是字段名

For i=0 To UBound(rs,1)
    Print Utf8toStr(rs(0,i)) '顯示字段名稱  文字都是Utf8格式的,有中文,必須用Utf8toStr轉換
Next

顯示全部數據,注意,數據從 1 開始,0行是字段名稱

For y=1 To UBound(rs,1)
    For x=0 To UBound(rs,2)
        Print rs(y,x) & " , " ;
    Next
    Print
Next

插入數據例題

SQLiteExec(DB,"INSERT INTO test(id,name,sex) VALUES('1','Tom','M')")
                             表      字段名              值

更新數據

SQLiteExec(DB,"UPDATE test SET sex='M' WHERE name='Jerry'")
                         表        條件          更新內容

刪除數據

SQLiteExec(DB,"DELETE FROM test WHERE name='Jerry'")
                              表          條件
SQLiteExec(DB,"DELETE FROM test WHERE id IN('003','005'") 
                             表                 條件

受影響的記錄數,我們可以使用sqlite3_change(sqlite3 *)的API來統計上一次操作受影響的記錄數。

print  sqlite3_changes(DB)

整理數據庫,也稱壓縮數據庫

SQLiteExec(DB,"VACUUM")

事務(Transaction) 批量處理SQL語句,如果大量操作數據庫,會很慢的,必須用這個

      SQLiteExec(DB, "BEGIN TRANSACTION")   ' 開始一個事務
      SQLiteExec( .....SQL)
      ....... 大量SQL
      SQLiteExec(DB, "COMMIT TRANSACTION")  ' 執行事務
      SQLiteExec(DB, "END TRANSACTION")     ' 結束事務

注意:以上sqlite代碼,生成的EXE,將包含數據庫引擎,所以,你的EXE將會增加700KB左右,好處是,沒必要帶個 sqlite3.DLL 文件了。

壞處是 EXE文件變大,不過,誰在乎這么點大的EXE呢。

因此,VFB生成的EXE純綠色,單文件。

使用ADO數據庫

在 WinFBX 里,有個 ADO數據庫 章節,自己看幫助,自己研究下,本人沒搞過,目前不知道。

因國家互聯網安全管理要求,關閉回帖功能。大家需要留言,請使用【勇芳軟件客服】即時聯系勇芳點此打開->>勇芳軟件客服
返回
聯系勇芳
一个人看的www视频播放中文_2012中文字幕电影_亚洲国产成人高清在线观看_中文字幕天堂最新版在线网