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