我正在使用 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,总是,总是,总是在每次 db 操作后检查错误位。与其他语言不同,如果存在数据库错误,Xojo 不会生成/抛出异常,因此由您来检查它。
尝试调用 Commit()。
我刚刚制作了一个带有“名称”表的示例 SQLite 数据库,这段代码运行良好:
db.SQLExecute("Delete from names where ID=2")
db.Commit
我已经用 XOJO 和 SQLite 做了很多工作,它们一起工作得很好。在您报告时,我从未见过错误复制的记录。这很奇怪。如果这没有帮助,请发布更多代码。例如,我假设您的“命令”变量是一个字符串,但也许它是一个变体,等等。
我认为SQLite
你不需要在DELETE
和之间的* FROM
。