我是lua编程的新手,我不知道如何创建数据库,在那里创建表并检索它。
我想第一次创建数据库和表。我需要将值插入表中,我想从表中检索列表。
我不知道如何开始,因为我是lua编程的初学者。你们可以帮助我或建议任何教程。
请帮帮我
谢谢你, Madan Mohan
答案 0 :(得分:0)
我已经关注了http://wiki.garrysmod.com/?title=LUA:SQLite_Tutorial sql lite& Lua教程,很不错。在开始之前,您需要将lua dlls / modules安装或复制到系统路径中,以便lua db模块能够找到数据库。
LuaSQL是客户端库的不错选择..
http://www.capricorn76.com/c76_scriptengine_docsdk/luasql/index.html
答案 1 :(得分:0)
你在标签中提到了Corona,尽管在你的问题中没有提到。这有所不同,因为Corona内置了对SQLite的支持,但没有任何其他类型的数据库。
他们网站上有关于如何使用数据库功能的文档:http://developer.anscamobile.com/content/data-storage
请注意,他们的示例都使用数据库命令的[[]]语法,但我发现它看起来更好,并且更容易理解使用“”
答案 2 :(得分:0)
这是一个老问题,但我会解释我这样做的方式:
在您的代码中将其复制到system.DocumentsDirectory:
local function copyDatabase()
util.copyFile( "model.db", system.ResourceDirectory, db_name, system.DocumentsDirectory, false )
end
<强> util.copyFile:强>
function M.copyFile( srcName, srcPath, dstName, dstPath, overwrite )
local results = false
local srcPath = M.doesFileExist( srcName, srcPath )
if ( srcPath == false ) then
return nil -- nil = source file not found
end
--check to see if destination file already exists
if not ( overwrite ) then
if ( M.doesFileExist( dstName, dstPath ) ) then
return 1 -- 1 = file already exists (dont overwrite)
end
end
--copy the source file to the destination file
local rfilePath = system.pathForFile( srcName, srcPath )
local wfilePath = system.pathForFile( dstName, dstPath )
local rfh = io.open( rfilePath, "rb" )
local wfh = io.open( wfilePath, "wb" )
if not ( wfh ) then
print( "writeFileName open error!" )
return false
else
--read the file from 'system.ResourceDirectory' and write to the destination directory
local data = rfh:read( "*a" )
if not ( data ) then
print( "read error!" )
return false
else
if not ( wfh:write( data ) ) then
print( "write error!" )
return false
end
end
end
results = 2 -- 2 = file copied successfully!
--clean up file handles
rfh:close()
wfh:close()
return results
end
要打开数据库:
local function openDatabase()
local path = system.pathForFile( db_name, system.DocumentsDirectory )
db = sqlite3.open( path )
end
创建一些表格
local function createTables()
-- I dont create a Primary Key manually as Sqlite creates ROWID for us
db:exec( "CREATE TABLE IF NOT EXISTS categories (category TEXT, description TEXT, icon_location TEXT )" )
end
您可以使用db:exec(db是您的本地变量到数据库)轻松更新和插入记录。如果查询完成且没有任何错误,db:exec返回0。