在Lua程式中使用SQLite的教程

2022-09-21 01:15:07 字數 2934 閱讀 1669

sqlite匯入

我們可以用乙個簡單語句匯入sqlite庫,假設lua中正確實現並已完成。在安裝過程中,資料夾libsql包含資料庫相關的檔案。

複製** **如下:

sqlite3 = require "luasql.sqlite3"

變數sqlite3將提供通過參照主sqlite3表訪問該功能。

建立連線

我們成立了發起sqlite環境,然後建立環境的連線。它如下所示。

複製** **如下:

local env  = sqlite3.sqlite3()

local conn = env:connect('mydb.sqlite')

上述連線將連線到現有的sqlite檔案或建立乙個新的原始碼檔案,並建立與新建立的檔案的連線。

執行函式

有可用的,這將有助於我們執行建立,插入,刪除,更新等,所有的資料庫操作基於連線執行簡單的功能。語法如下所示

複製** **如下:

conn:execute([[ 'sqlite3statement' ]])

在上面的語法,我們需要確保conn是開放的及現有的sqlite3連線,代替「sqlite3使用正確的語句。

建立表的例子

乙個簡單的建立表的示例如下所示。它建立型別為int和varchar型別,兩個引數id和name的表。

複製** **如下:

sqlite3 = require "luasql.sqlite3"

local env  = sqlite3.sqlite3()

local conn = env:connect('mydb.sqlite')

print(env,conn)

status,程式設計客棧errorstring = conn:execute([[create table sample ('id' integer, 'name' text)]])

print(status,errorstring )

當執行上面的程式,表名為sample將有兩列分別是id和name會被建立。

複製** **如下:

sqlite3 environment (003ec918) sqlite3 connection (00421f08)

0 nil

如果有錯誤,會返回nil的錯誤語句。下面乙個簡單的錯誤語句如下所示。

複製** **如下:

luasql: unrecognized token: ""'id' integer, 'name' text)"

insert語句的例子

sqlite的乙個insert語句如下所示。

複製** **如下:

conn:execute([[insert into sample values('11','raj')]])

select語句的例子

就select語句而言,我們需要遍歷每一行,並提取所需的資料。下面簡單的selexlwncjjct語句如下所示。

複製** **如下:

cursor,errorstring = conn:execute([[select * from sample]])

row = cursor:fetch ({}, "a")

while row do

print(string.format("id: %s, name: %s", row.id, row.name))

-- reusing the table of results

row = cursor:fetch (row, "a")

end在上面的**中,conn 是乙個開放的sqlite3連線。在執行語句返回游標的幫助下,可以通過表的反應返回獲取所需的選擇資料。

乙個完整的例子

所有上述宣告乙個完整的例子給出下面參考。

複製** **如下:

sqlite3 = require "luasql.sqlite3"

local env  = sqlite3.sqlite3()

local conn = 程式設計客棧env:connect('mydb.sqlite')

print(env,conn)

status,errorstring = conn:execute([[create table sample ('id' integer, 'name' text)]])

print(status,errorstring )

status,errorstring = conn:execute([[insert into sample values('1','raj')]])

print(status,errorstring )

cursor,errorstring = conn:execute([[select * from sample]])

print(cursor,errorstring)

row = cursor:fetch ({}, "a")

while row do

print(string.format("id: %s, name: %s", row.id, row.name))

row = cursor:fetch (row, "a")

end-- close everything

cursor:close()

conn:close()

env:close()

當執行上面的程式,會得到如下的輸出。

複製** **如下:

sqlite3 environment (005ec918) sqlite3 connection (005e77b0)

0 nil

1 nil

sqlite3 cursor (005e9200)xlwncjj nil

id: 1, name: raj

我們可以用這個libsql庫完成所有可用的查詢。所以可以試驗mysql,sqlite3和其它lua支援db提供各種查詢語句。

本文標題: 在lua程式中使用sqlite的教程

本文位址:

在c 中使用SQlite

1.生成 lib 檔案 第一步 找到lib.exe所在目錄 一般都在x program files microsoft visual studio vc98 bin下,在 執行 中輸入cmd,然後切換到該目錄下 第二步 使用lib命令生成.lib檔案 很多網頁上都介紹,使用lib def sqlit...

在QT中使用sqlite

sqlite sql 是一款開源輕量級的資料庫軟體,不需要server,可以整合在其他軟體中,非常適合嵌入式系統。qt5以上版本可以直接使用sqlite qt自帶驅動 引入sql模組 在qt專案檔案 pro檔案 中,加入sql模組 qt sql include include include檢查連線...

在ABP中使用SQLite

使用abp連線sqlite時出現下面錯誤 system.data.entity.core.entityexception the underlying provider failed on open.內部異常 argumentexception isolationlevel 找了好久才解決,記錄一下...