commit ea441465ce55b1bb68015a417c6560f65b3b8007 from: Omar Polo date: Sun Dec 31 09:50:43 2023 UTC add some code that plays with sqlite3:: commit - bcec250b33ce2cad945478aa45389109ea7b5970 commit + ea441465ce55b1bb68015a417c6560f65b3b8007 blob - 37902a1dabbdc48ef964d668ca1a648b1fe3054f blob + 4a5d24b1d1ef13f2c921d6d1c1277a7cdfa56a33 --- shinsha.ha +++ shinsha.ha @@ -11,6 +11,7 @@ use unix::signal; use ev; use http; +use sqlite3; fn sighandler(sig: signal::sig, data: nullable *opaque) void = { // Normal signal handler rules don't apply because ev @@ -44,6 +45,38 @@ fn page2(req: *http::request, res: *http::reswriter) ( }; export fn main() void = { + let db = sqlite3::open("shinsha.sqlite3")!; + defer sqlite3::close(db)!; + + let stmt = sqlite3::prepare(db, "select $first, $second")!; + defer sqlite3::finalize(stmt)!; + + sqlite3::bind(stmt, "$first", 42)!; + sqlite3::bind(stmt, 2, "hello from hare!")!; + // eg. set to null + //sqlite3::bind(stmt, "$text", void)!; + + for (sqlite3::step(stmt)!) { + fmt::println(sqlite3::column_text(stmt, 0))!; + fmt::println(sqlite3::column_text(stmt, 1))!; + }; + + sqlite3::reset(stmt)!; + for (sqlite3::step(stmt)!) { + fmt::println(sqlite3::column_text(stmt, 0))!; + fmt::println(sqlite3::column_text(stmt, 1))!; + }; + + sqlite3::reset(stmt)!; + sqlite3::clear_bindings(stmt)!; + sqlite3::bind(stmt, "$first", "he-he-he!")!; + for (sqlite3::step(stmt)!) { + fmt::println(sqlite3::column_text(stmt, 0))!; + fmt::println(sqlite3::column_text(stmt, 1))!; + }; +}; + +export fn main2() void = { const cmd = getopt::parse(os::args, "web manga reader", ('d', "run in the foreground"),