use oxisql_core::Connection;
use oxisql_sqlite_compat::SqliteConnection;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let conn = SqliteConnection::open_memory().await?;
conn.execute(
"CREATE TABLE pilots (id INTEGER PRIMARY KEY, name TEXT NOT NULL, callsign TEXT)",
&[],
)
.await?;
conn.execute(
"INSERT INTO pilots (name, callsign) VALUES ($1, $2)",
&[&"Maverick", &"Pete Mitchell"],
)
.await?;
conn.execute(
"INSERT INTO pilots (name, callsign) VALUES ($1, $2)",
&[&"Goose", &"Nick Bradshaw"],
)
.await?;
let rows = conn
.query("SELECT id, name, callsign FROM pilots ORDER BY id", &[])
.await?;
println!("pilots:");
for row in &rows {
let id: i64 = row.try_get("id")?;
let name: String = row.try_get("name")?;
let callsign: String = row.try_get("callsign")?;
println!(" #{id} {name} \"{callsign}\"");
}
assert_eq!(rows.len(), 2, "expected exactly the two inserted rows");
Ok(())
}