如何知道 FMDB 查询是否成功

How know if FMDB query succeeded

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

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

但只有我明白

<FMResultSet: 0x60000289ab20>

虽然我尝试迭代集合,但从未进入循环内部while

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

我的代码中有什么错误,为什么我得到了一个干净的集合

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

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

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

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


UPDATEDELETE的情况下,只有在更新过程中出现错误时才会抛出错误。但是(特别是如果您有 WHERE 子句),您可能还想检查 database.changes 以查看有多少行受到影响。