【发布时间】:2019-12-15 19:49:21
【问题描述】:
我的原始代码
func getUserByEmpNum(_ id: Int) -> String {
let nameQuery: String = "SELECT fld_str_firstname, fld_str_lastName FROM userView WHERE fld_int_id = \(id);"
var returnStr = ""
do {
let dbQueue = try DatabaseQueue(path: MYCDatabase.pathToDatabase)
try dbQueue.inTransaction(.none) { (db) -> Database.TransactionCompletion in
let returnStrs = try String.fetchAll(db, sql: nameQuery)
// Placing a breakpoint here, returnStrs only has one element?
return .commit
}
} catch {
print (error)
}
return returnStr
}
我的问题
在这段代码中,如果我执行select fld_str_firstname from myOwnUserView where fld_int_id = 2; 之类的查询,我会在 returnStrs 数组中得到一个元素,这与预期的一样。然后选择这两个字段,就像在 nameQuery 中一样,我仍然只能在 returnStrs 数组中得到一个字符串。
为什么会这样,我如何适应它以获取响应中的所有选定列?
【问题讨论】:
-
邮政编码作为文本,而不是图像。你能打印变量 returnStrs 并包含结果吗?
-
直接在您的数据库上运行查询,使用
sqlite3。它返回什么? -
帖子应尽可能独立。不要依赖指向外部网站的链接来获取帖子本身可能包含、引用或解释的内容。不要将文本图像(例如屏幕截图或打印页面的扫描)用于可以直接输入帖子的材料; meta.stackoverflow.com/a/346503/1180728
-
伙计们,我已经根据 cmets 进行了更正。请停止投票我原来的问题。