【问题标题】:How know if FMDB query succeeded如何知道 FMDB 查询是否成功
【发布时间】:2019-10-08 02:41:37
【问题描述】:

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

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

但只有我明白

<FMResultSet: 0x60000289ab20>

当我尝试迭代集合时,永远不要进入循环while

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

我的代码有问题,为什么我得到一个干净的集合

【问题讨论】:

    标签: swift sqlite fmdb


    【解决方案1】:

    您希望在执行更新数据库的查询时使用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 以查看受影响的行数。

    【讨论】:

      猜你喜欢
      • 2014-07-07
      • 2013-10-20
      • 1970-01-01
      • 2011-08-10
      • 2010-11-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多