Closed fdietze closed 4 weeks ago
Hi, Frag takes three arguments: https://github.com/AugustNagro/magnum/blob/master/magnum/src/main/scala/com/augustnagro/magnum/Frag.scala
You're missing the third writer: FragWriter
argument (you do not want the default Frag.emptyWriter)
For an example on how to implement FragWriter, see for example https://github.com/AugustNagro/magnum/blob/master/magnum/src/main/scala/com/augustnagro/magnum/Spec.scala#L38
For reference, this is what I came up with:
def fragWriter(params: Seq[Any]): FragWriter = { (preparedStatement, startPos) =>
var i = 0
val n = params.size
while (i < n) {
val param = params(i)
param match {
case param: Int => preparedStatement.setInt(startPos + i, param)
case param: Long => preparedStatement.setLong(startPos + i, param)
case param: String => preparedStatement.setString(startPos + i, param)
case param: Double => preparedStatement.setDouble(startPos + i, param)
}
i += 1
}
startPos + params.size
}
Hi, what is the equivalent
Frag
of writingsql"... $param"
? I thought it would beFrag("... ? ", IArray(param))
, but that doesn't return any result rows, because the param is probably not passed correctly to the db.I'm using sqlite.
For context, I'm experimenting with sqlc to generate Scala functions from raw sql queries: https://github.com/fdietze/sqlc-gen-from-template