將這3個檔案匯入到專案中,並增加乙個標頭檔案lsqlite3.h,
將sqlite3註冊到lua中:
//
// main.cpp
// luaandcpp
//#include
#include "lua.hpp"
#if __cplusplus
extern "c",
};#if __cplusplus
}#endif
int main(int argc, const
char * argv)
lua_pop(m_luastate, 2);
lual_dofile(m_luastate, "/users/forest/documents/luaandcpp/luaandcpp/scripts/database.lua");
lua_close(m_luastate);
return
0;}
在database.lua中:
local sqlite3 = require
"lsqlite3"
print('--->>',sqlite3)
結果--->> table: 0x100400cf0
驗證是否能建立資料庫:
local sq = {}
local sqlite3 = require
"lsqlite3"
local db = nil
-- print('--->>',sqlite3)
sq.create_db = function
( path , name )
path = path..name
db = sqlite3.open(path)
endlocal path = "/users/forest/documents/luaandcpp/luaandcpp/"
sq.create_db(path,"config")
return sq
執行之後在指定目錄下建立了config
完善對config資料庫的操作
local sq = {}
local sqlite3 = require
"lsqlite3"
local db = nil
-- 建立資料庫
sq.create_db = function
( path , name )
path = path..name
db = sqlite3.open(path)
end-- 建立表
sq.create_table = function
( table_name )
local str = 'create table '..table_name..' (id integer primary key , content);'
db:exec(str)
end-- 增
sq.insert_info = function
( table_name , key , value )
local str = 'insert into '..table_name..' values('..key..','..'\"'..value..'\"'..');'
print(str)
db:exec(str)
end-- 查詢
sq.select = function
( table_name )
local str = 'select * from '..table_name
local tab = {}
for row in db:nrows(str) do
print(row.id,row.content)
-- tab[row.id] = row.content
if row.id == 1
then
row.content = "rotation"
endlocal index = tonumber(row.id)
local content = tostring(row.content)
table.insert(tab , content)
endfor k,v in
pairs(tab) do
print(k,v)
endreturn tab
end-- 刪除
sq.delete = function
( table_name )
local str = 'delete from '..table_name
db:exec(str)
endlocal path = "/users/forest/documents/luaandcpp/luaandcpp/"
sq.create_db(path,"config")
-- 建立 sceneinfo 表
sq.create_table('sceneinfo')
sq.insert_info('sceneinfo', 1280, "width")
sq.insert_info('sceneinfo', 720, "height")
sq.insert_info('sceneinfo', 1, "scale")
sq.select('sceneinfo')
return sq
執行結果
hello, world!
insert
into sceneinfo values(1280,"width");
insert
into sceneinfo values(720,"height");
insert
into sceneinfo values(1,"scale");
1 scale
720 height
1280 width
1 rotation
2 height
3 width
program ended with exit code: 0
通過終端驗證
sqlite version
3.8.10
.22015-05-20
18:17:19
enter ".help"
for usage hints.
sqlite> .tables
sceneinfo
sqlite> .schema
create table sceneinfo (id
integer primary key , content);
sqlite> select * from sceneinfo;
1|scale
720|height
1280|width
sqlite> .mode line
sqlite> select * from sceneinfo;
id = 1
content = scale
id = 720
content = height
id = 1280
content = width
sqlite> .mode column
sqlite> select * from sceneinfo;
1 scale
720 height
1280 width
sqlite> .headers on
sqlite> select * from sceneinfo;
id content
---------- ----------
1 scale
720 height
1280 width
sqlite>
如何正確的在專案中接入微信JS SDK
但是只支援使用 amd cmd 標準模組載入方法載入。於是我就在npm的官網上找到了發布後的js sdk,支援commonjs的引入方式。npm的位址在 這裡。可以在你的專案中使用如下命令安裝。npm install weixin js sdk 安裝好後可以使用一下兩種方式進行引入。使用common...
如何正確的在專案中接入微信JS SDK
但是只支援使用 amd cmd 標準模組載入方法載入。於是我就在npm的官網上找到了發布後的js sdk,支援commonjs的引入方式。npm的位址在 這裡。可以在你的專案中使用如下命令安裝。npm install weixin js sdk安裝好後可以使用一下兩種方式進行引入。使用commonj...
如何正確的在專案中接入微信JS SDK
但是只支援使用 amd cmd 標準模組載入方法載入。於是我就在npm的官網上找到了發布後的js sdk,支援commonjs的引入方式。npm的位址在 這裡。可以在你的專案中使用如下命令安裝。npm install weixin js sdk 安裝好後可以使用一下兩種方式進行引入。使用common...