Swift FMDB:我必须使用哪种方法?

问题描述 投票:1回答:3

我现在正在研究FMDB,有很多种方法'executeQuery'和'executeUpdate'。

executeQuery(sql,values:[Any])
executeQuery(sql,withArgumentsIn: [Any])
executeUpdate(sql,values:[Any])
executeUpdate(sql,withArgumentsIn: [Any])

我想知道这些方法的不同之处以及何时必须使用哪种方法。

我可以使用任何方法吗?

我很感谢你的所有答案。谢谢

swift fmdb
3个回答
1
投票

executeQuery(sql,values:[Any]):

此方法具有返回类型FMResultSet。它将提供查询选择的所有记录。我们可以使用这种方法执行SELECT语句。

executeUpdate:

此方法具有返回类型Bool。我们可以使用这种方法执行INSERT,UPDATE,DELETE语句。

例如

let sql = "insert into User(UserName,Address,Postcode) values(:username,:address,:postcode)"
let args = [“username”:”Tom”,” address”:”Newyork”,” postcode”:”123467”]
executeUpdate(sql,values:args)

0
投票

executeUpdate的(...)

executeUpdate(...)方法用于可以修改数据库的所有查询(换句话说,非选择查询)

database.executeUpdate("insert into test (x, y, z) values (?, ?, ?)", values: ["a", "b", "c"])

的executeQuery(...)

SELECT语句是一个查询,通过-executeQuery ...方法之一执行。

database.executeQuery("select x, y, z from test", values: nil)

FMDB


0
投票

您可以通过查看函数签名来区分。

executeQuery(sql: String, withArgumentsIn: [Any]) -> FMResultSet?
executeQuery(sql: String, values: [Any]?) throws -> FMResultSet

executeQuery返回一个FMResultSet,因此它用于返回数据的语句(即SELECT语句)。两个版本之间的区别在于查询失败时会发生什么 - 第一个版本在失败时返回nil,而第二个版本抛出错误。

executeUpdate(sql: String, withArgumentsIn: [Any]) -> Bool
executeUpdate(sql: String, values: [Any]?) throws -> Void

executeUpdate不返回数据;它基本上用于其他一切。像以前一样,两者之间的区别在于它们如何处理失败 - 第一个返回一个布尔值(如果语句成功则为true,如果失败则为false),而第二个不返回任何内容,但如果失败则抛出错误。

© www.soinside.com 2019 - 2024. All rights reserved.