Example of Implementing the Query Function for A Database Driver
For the database driver provider, the sample code for implementing the query function is as follows:
import std.database.sql.*
import std.sync.*
// Implements the QueryResult interface.
public class Rows <: QueryResult {
let closed = AtomicBool(false)
public func close(): Unit {
if (isClosed()) {
return
}
closed.store(true)
}
public func isClosed(): Bool {
closed.load()
}
public prop columnInfos: Array<ColumnInfo> {
get() {
[]
}
}
public func next(values: Array<SqlDbType>): Bool {
for (idx in 0..values.size) {
match (values[idx]) {
case v: SqlBigInt => v.value = 100
case v: SqlVarchar => v.value = "foo"
case v: SqlNullableTimestamp => v.value = None
case _ => ()
}
}
return false
}
}