2013 年 7 月 22 日
Corona Geek #47 – 在 Corona SDK 中处理数据
本周我们与 Brian Burton 博士、Ed Maurina、Matthew Chapman、Jen Looper、Mohammed Bennouf 和 Theo Rushin, Jr 一起探讨了 使用 SQLite 和 Corona SDK 存储和访问数据的示例代码。Burton 博士演示了一个代码示例,该示例检查本地 SQLite 数据库文件、连接到数据库并在 TableView 中显示数据。专家小组分享了很多精彩的问题和技巧。我们计划在未来的视频会议中讨论如何从远程源提取数据并将数据存储在本地数据库中。
务必购买 Burton 博士的著作“使用 Corona 开发移动应用程序和游戏入门”,其中提供了更多关于如何使用数据库和 Corona SDK 的示例。
Corona Labs T 恤获奖者
恭喜 David Freeman 赢得本周的 Corona Labs T 恤。要获得获奖机会,请在 Twitter 和 Facebook 上关注 Corona Geek,并填写 Corona Geek 赠品表格。
感谢您的观看,我们将在下周的 Corona Geek 视频会议中再见!
记得订阅
Matt Kauble
发布于 08:13,7 月 26 日感谢您提供精彩的数据信息。我也很想获得 Jen 提到的解析教程的链接。有人有吗?
Charles McKeever
发布于 08:19,7 月 26 日Matt,你可以在这里找到 Jen 的解析教程
Corona SDK 解析教程 1
Corona SDK 解析教程 2
Corona SDK 解析教程 3
Matt Kauble
发布于 09:08,7 月 26 日谢谢!您真是救星。
Charles McKeever
发布于 12:09,7 月 26 日谢谢 Matt。我一直都想在外表上呈现出多色彩和酥脆的样子 😉
TDS
发布于 21:40,8 月 29 日您好,
关于 ResourceDirectory(RD) 传输位,有一个问题。
正如 Brian 所说,Documents Directory(DD) 是你可以保存不受更新影响的数据的地方。
我的问题 - 如果你通过此代码将 db 从 RD 传输到 DD;
[lua]local path = system.pathForFile(“zip.sqlite”, system.DocumentsDirectory )
file = io.open( path, “r” )
if( file == nil )then
— 不存在,因此从 Resource Directory 复制进来
pathSource = system.pathForFile( “zip.sqlite”, system.ResourceDirectory )
fileSource = io.open( pathSource, “rb” )
contentsSource = fileSource:read( “*a” )
–在 Documents Directory 中写入目标文件
pathDest = system.pathForFile( “zip.sqlite”, system.DocumentsDirectory )
fileDest = io.open( pathDest, “wb” )
fileDest:write( contentsSource )
— 完成
io.close( fileSource )
io.close( fileDest )
end
[/lua]
那么,如果更改了下一个应用程序更新中包含的原始数据库中的数据会发生什么情况。
此代码是否会说“哦,DD 中存在该文件,所以我将忘记 RD 中的 db 文件 - 因此不使用更新的 db??”
谢谢
TDS
DrBurton
发布于 15:34,8 月 30 日@TDS,
目前编写代码的方式是,是的,它会看到文件存在并且不会替换它。你可以修改代码,以便在数据库存在时检查版本号或其他字段,以确保它是最新的。
我实际上正在开发一个使用版本字段来确保数据是最新的项目。
TDS
发布于 22:08,9 月 2 日感谢您为我澄清这一点。是代码中说的这句话;
— 数据库是否存在于 documents 目录中(允许更新和持久化)
让我很困惑 - 我不是数据库专家,但是“允许更新..”以及查看 if 语句让我很困惑 - 我一直在查找“r”、“w”等术语,试图理解它。
如果我在这里理解正确,你建议的是首先打开 RD 文件和 DD 文件,然后在每个文件的表格中都有一个版本号,然后检查 RD 的版本号是否更高,如果是,则复制(覆盖“w+”)DD,如果不是,则使用 DD 就可以。
谢谢
TDS