0
当我每次更新我的应用时,数据库总是变回零,并且我以前的所有进度都消失了。我刚刚添加了一个新表格,并添加了几行。我在电晕论坛上看到,我应该使用Documents Directory以便数据库不会被更新。但是当我这样做时,我的应用程序变得混乱,所以我仍然使用系统资源目录,关于如何使用我的数据库的任何提示?在不更改其值的情况下更新数据库(在表中添加新行)
local path = system.pathForFile("database/inventorydb.db",system.ResourceDirectory)
db = sqlite3.open(path)
db:exec([[UPDATE tbl]].. selectedStageH1 ..[[ SET count = ']]..yogurtNumber..[[' WHERE type = 'yogurt']])
db:exec([[UPDATE tbl]].. selectedStageH1 ..[[ SET count = ']]..waffleNumber..[[' WHERE type = 'waffle']])
db:exec([[UPDATE tbl]].. selectedStageH1 ..[[ SET count = ']]..smoothieNumber..[[' WHERE type = 'smoothie']])
db:exec([[UPDATE tbl]].. selectedStageH1 ..[[ SET count = ']]..coffeeNumber..[[' WHERE type = 'coffee']])
db:exec([[UPDATE money SET pera = ']]..moneyAddition..[[' WHERE id = '1']])
if realRating >= 1 then
nextLevel = lvlNumber + 1
db:exec([[UPDATE levels SET status = 'done' WHERE level = ']]..nextLevel..[[']])
end
if realRating >= currentRating then
db:exec([[UPDATE ratingdb SET stars = ']]..realRating..[[' WHERE level = ']]..lvlNumber..[[']])
end
local options = {
effect = "fade", time = 500, params = { selectedStage = selectedStageH1,}
}
所以基本上我所提供的连接字符串加上更新levelstate和水平等级的代码,所以这一切都简单,当我每次重新安装应用我的设备,无论是在资源目录将被保存在上该设备,从而覆盖设备中的数据库。
我想是什么让我在移动设备上的DocumentsDirectory(第一次安装),因为它缺席。这就是为什么我的应用程序因为无法在我的数据库中找到表而被搞砸的原因 – user3278528