언제 내 앱을 업데이트 할 때마다 데이터베이스는 항상 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