如何知道 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
,例如 INSERT
、UPDATE
或 DELETE
SQL 语句:
let sql = "INSERT INTO practice(old, number) VALUES (?, ?)"
try database.executeUpdate(sql, values: [old, number])
不用说,你知道INSERT
是否成功的方式就是它是否抛出错误。
但是 executeQuery
仅在 SQL returns 行(例如 SELECT
语句)时使用。
在UPDATE
和DELETE
的情况下,只有在更新过程中出现错误时才会抛出错误。但是(特别是如果您有 WHERE
子句),您可能还想检查 database.changes
以查看有多少行受到影响。
我想得到以下查询的任何答案(知道我的查询是成功还是失败):
let rs = try self.database.executeQuery
("insert into Practice(old, number) values (?, ?)",
values: [old, number])
但只有我明白
<FMResultSet: 0x60000289ab20>
虽然我尝试迭代集合,但从未进入循环内部while
while rs.next(){
print("never")
}
我的代码中有什么错误,为什么我得到了一个干净的集合
您想在执行更新数据库的查询时使用 executeUpdate
,例如 INSERT
、UPDATE
或 DELETE
SQL 语句:
let sql = "INSERT INTO practice(old, number) VALUES (?, ?)"
try database.executeUpdate(sql, values: [old, number])
不用说,你知道INSERT
是否成功的方式就是它是否抛出错误。
但是 executeQuery
仅在 SQL returns 行(例如 SELECT
语句)时使用。
在UPDATE
和DELETE
的情况下,只有在更新过程中出现错误时才会抛出错误。但是(特别是如果您有 WHERE
子句),您可能还想检查 database.changes
以查看有多少行受到影响。