type User { id: Int, name: Str }
query findUser(name: Str): User[dyn] {
SELECT id, name FROM users WHERE name = {name}
}
proc main(): void {
pooled := hive.sql.pool(hive.sql.DatabaseDriver.SQLite(), "file::memory:?cache=shared", 1, 1)
if pooled is Result.Ok(db) {
using db run raw "CREATE TABLE users (id INTEGER, name TEXT)"
using db run raw "INSERT INTO users (id, name) VALUES (1, 'ada')"
found := using db run findUser("ada")
if found is Result.Ok(users) {
echo users
}
hive.sql.close(db)
} else if pooled is Result.Error(err) {
echo "could not open the database: {err.message}"
}
}