2020-03-26 09:23:54 +01:00
|
|
|
import sqlite
|
2019-10-28 08:40:41 +01:00
|
|
|
|
2019-10-27 22:10:39 +01:00
|
|
|
fn test_sqlite() {
|
2020-04-21 05:52:44 +02:00
|
|
|
$if !linux {
|
|
|
|
return
|
|
|
|
}
|
2020-12-21 21:02:29 +01:00
|
|
|
mut db := sqlite.connect(':memory:') or {
|
2021-03-01 00:18:14 +01:00
|
|
|
panic(err)
|
2020-10-19 20:11:04 +02:00
|
|
|
}
|
2020-12-21 21:02:29 +01:00
|
|
|
assert db.is_open
|
2020-10-19 20:11:04 +02:00
|
|
|
db.exec('drop table if exists users')
|
2019-10-28 09:45:27 +01:00
|
|
|
db.exec("create table users (id integer primary key, name text default '');")
|
|
|
|
db.exec("insert into users (name) values ('Sam')")
|
|
|
|
db.exec("insert into users (name) values ('Peter')")
|
|
|
|
db.exec("insert into users (name) values ('Kate')")
|
|
|
|
nr_users := db.q_int('select count(*) from users')
|
2020-02-02 02:56:09 +01:00
|
|
|
assert nr_users == 3
|
2019-10-28 09:45:27 +01:00
|
|
|
name := db.q_string('select name from users where id = 1')
|
|
|
|
assert name == 'Sam'
|
2020-02-02 02:56:09 +01:00
|
|
|
users, mut code := db.exec('select * from users')
|
2019-10-28 09:45:27 +01:00
|
|
|
assert users.len == 3
|
2020-02-02 02:56:09 +01:00
|
|
|
assert code == 101
|
|
|
|
code = db.exec_none('vacuum')
|
|
|
|
assert code == 101
|
|
|
|
user := db.exec_one('select * from users where id = 3') or {
|
2021-03-01 00:18:14 +01:00
|
|
|
panic(err)
|
2020-02-02 02:56:09 +01:00
|
|
|
}
|
|
|
|
assert user.vals.len == 2
|
2020-12-21 21:02:29 +01:00
|
|
|
db.close() or {
|
2021-03-01 00:18:14 +01:00
|
|
|
panic(err)
|
2020-12-21 21:02:29 +01:00
|
|
|
}
|
|
|
|
assert !db.is_open
|
2020-02-02 02:56:09 +01:00
|
|
|
}
|