如何知道FMDB查询是否成功

时间:2019-10-08 02:41:37

标签: swift sqlite fmdb

我想获得以下查询的任何答案(知道我的查询是成功还是失败):

let rs = try self.database.executeQuery
    ("insert into Practice(old, number) values (?, ?)", 
     values: [old, number])

但只有我能得到这个

<FMResultSet: 0x60000289ab20>

在我尝试迭代集合时,切勿进入循环while

while rs.next(){
    print("never")
}

这在我的代码中是错误的,为什么我得到一个干净的集合

1 个答案:

答案 0 :(得分:0)

您要在执行更新数据库的查询时使用executeUpdate,例如INSERTUPDATEDELETE SQL语句:

let sql = "INSERT INTO practice(old, number) VALUES (?, ?)"
try database.executeUpdate(sql, values: [old, number])

不用说,您知道INSERT是否成功的方式就是是否抛出错误。

但是executeQuery仅在SQL返回行(例如SELECT语句)时使用。


UPDATEDELETE的情况下,仅当更新期间发生错误时,才会引发错误。但是(特别是如果您有WHERE子句),您可能还需要检查database.changes来查看受影响的行数。