我需要获取查询接口的完整 sql 查询,以便将它们保存在用户默认值中,但我找不到此功能
更新:为了实现完整的查询字符串:
包括被 sqlite 修剪以进行注入的参数,您不能手动用问号替换这些参数。
您无法实现这些论点的真正价值,因为它们是私有的
trace
最新的GRDB中有一个函数:
// Prints all SQL statements
var config = Configuration()
config.prepareDatabase { db in
db.trace { print($0) }
}
如何将请求打印为 SQL?常见问题解答 说:
您可以将您的请求转换为 SQLRequest 实例:
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"] }