我使用的是Xojo 2013版本1。我正试图从SQLite数据库中删除一条记录。但我失败得很惨。它没有删除记录,而是出于某种原因复制了它。
这是我使用的代码:
command = "DELETE * from names where ID = 10"
namesDB.SQLExecute(command)
我正在动态生成命令。但无论我怎么改变,它总是一样的。带引号或不带引号的结果相同。
有什么想法吗?
我要做的第一件事就是检查是否生成了错误。
if namesDB.Error then
dim s as string = namesDB.errorMessage
msgbox s
return
end
它会告诉你是否存在数据库错误以及错误是什么。如果没有错误,那么问题就出在其他地方。
FWIW,总是,总是,在每次数据库操作后检查错误位。与其他语言不同,如果出现数据库错误,Xojo不会生成/抛出异常,因此由您进行检查。
尝试调用Commit()。
我刚刚制作了一个带有"名称"表的示例SQLite数据库,此代码运行良好:
db.SQLExecute("Delete from names where ID=2")
db.Commit
我用XOJO和SQLite做了很多工作,它们配合得很好。我从未见过你报告时错误复制的记录。这很奇怪。如果这没有帮助,发布更多的代码。例如,我假设您的"command"变量是一个String,但可能是一个Variant,等等。
我认为在SQLite
上,不需要DELETE
和FROM
之间的*。