2

我正在尝试更新数据库版本,但是,我遇到了一个奇怪的问题......这是我的代码:

version = 2
local cur_db_version=nil
for data in db:nrows("PRAGMA user_version") do
    cur_db_version=data
    break
end
local db_version=cur_db_version.user_version
print(db_version)
print(version)
if (db_version~=version) then
    create()
    db:exec("PRAGMA user_version="..version)
end

想象数据库版本是1,我期待我的脚本打印这个:

1
2

但它打印的是:

2
2

为什么?我不知道,但是,我知道如果我评论该行db:exec("PRAGMA user_version="..version),那么它真的会打印:

1
2

那么,我的代码有什么问题导致错误的输出?该行是否db:exec("PRAGMA user_version="..version)在打印之前以某种方式执行?如果是这样,我该如何更改我的代码以便它只create()version更改时调用?

顺便说一句,我正在使用 Corona SDK,但我不认为问题与它有关吗?

4

1 回答 1

1

好的,我发现了问题...上面的代码是正确的,问题出sublime在我保存文件时必须重新启动模拟器的脚本上,而发生的事情是不知何故,该脚本连续 2 次重新启动模拟器时间,由于我有很多打印,我没有在控制台上看到正确的输出......

我将把这个问题留在这里只是因为可能有其他人想知道如何更新 corona/lua 上的数据库版本。

于 2013-10-21T14:27:00.677 回答