Swift 如何在grdb中获取完整的QueryInterfaceRequest sql字符串,包括字符串中的所有参数(grdb.StatementArguments)
我需要获取查询接口的完整sql查询,以便以用户默认值保存它们,但我找不到此功能 更新: 为了实现完整的查询字符串:Swift 如何在grdb中获取完整的QueryInterfaceRequest sql字符串,包括字符串中的所有参数(grdb.StatementArguments),swift,grdb,Swift,Grdb,我需要获取查询接口的完整sql查询,以便以用户默认值保存它们,但我找不到此功能 更新: 为了实现完整的查询字符串: 包括sqlite为注入修剪的参数,您不能手动用问号替换这些参数 您无法实现这些参数的真正价值,因为它们是私有的 常见问题解答说: 您可以将请求转换为SQLRequest实例: try dbQueue.read { db in let request = Wine .filter(Column("origin") == "Burgundy")
try dbQueue.read { db in
let request = Wine
.filter(Column("origin") == "Burgundy")
.order(Column("price")
let sqlRequest = try SQLRequest(db, request: request)
print(sqlRequest.sql)
// Prints SELECT * FROM wine WHERE origin = ? ORDER BY price
print(sqlRequest.arguments)
// Prints ["Burgundy"]
}
最新GRDB中有一个
跟踪功能
:
// Prints all SQL statements
var config = Configuration()
config.prepareDatabase { db in
db.trace { print($0) }
}
首先谢谢你的回答。我知道这一点,但为了实现完整的查询字符串,包括sqlite为注入而修剪的参数,您不能用问号manualy替换这些参数。另一个缺点是您无法实现这些参数的真实值,因为它们是privateOK@nova。下次你问关于SO的问题时,请确保你说出了你已经知道的内容,以便问题和答案都更加集中?这将帮助所有人,不仅仅是你。现在你的评论是关于其他事情的。我建议你问另一个问题,或者,如果某个功能缺失,就打开一个Github问题。这一点很好。我会更新这个问题,我从问这个问题的时候就不知道了。