~/bend-docscommunity

sqlite.bend source

sqlite.bend on the hub · documented module

# Prepared SQLite statements through libsqlite3. Source: https://github.com/paymog/bend-kit/tree/main/sqliteimport Base# Handles are opaque U32 IDs. Close each database after finalizing all its statements.# Every effect returns (SQLite error code, message) on failure.# BEND_LIBSQLITE selects a custom libsqlite3 path.def db.open(path: String) -> IO(Result<&1, &1, U32 & String, U32>):  import "./effs/sqlite.c"  import "./effs/sqlite.js"def db.close(db: U32) -> IO(Result<&1, &1, U32 & String, Unit>):  import "./effs/sqlite.c"  import "./effs/sqlite.js"# Exactly one SQL statement is accepted; use bind operations for values.def stmt.prepare(db: U32, sql: String) -> IO(Result<&1, &1, U32 & String, U32>):  import "./effs/sqlite.c"  import "./effs/sqlite.js"def stmt.finalize(stmt: U32) -> IO(Result<&1, &1, U32 & String, Unit>):  import "./effs/sqlite.c"  import "./effs/sqlite.js"# Bind positions start at 1. Integer values are unsigned 32-bit.def stmt.bind.int(stmt: U32, index: U32, value: U32) -> IO(Result<&1, &1, U32 & String, Unit>):  import "./effs/sqlite.c"  import "./effs/sqlite.js"def stmt.bind.text(stmt: U32, index: U32, text: String) -> IO(Result<&1, &1, U32 & String, Unit>):  import "./effs/sqlite.c"  import "./effs/sqlite.js"def stmt.bind.null(stmt: U32, index: U32) -> IO(Result<&1, &1, U32 & String, Unit>):  import "./effs/sqlite.c"  import "./effs/sqlite.js"# Blob octets are packed four per U32, least-significant byte first.def stmt.bind.blob(stmt: U32, index: U32, len: U32, words: Array<U32>) -> IO(Result<&1, &1, U32 & String, Unit>):  import "./effs/sqlite.c"  import "./effs/sqlite.js"# True means a row is available; False means no more rows.def stmt.step(stmt: U32) -> IO(Result<&1, &1, U32 & String, Bool>):  import "./effs/sqlite.c"  import "./effs/sqlite.js"def stmt.reset(stmt: U32) -> IO(Result<&1, &1, U32 & String, Unit>):  import "./effs/sqlite.c"  import "./effs/sqlite.js"# Column indexes start at 0. Read columns only after a True step.# SQLite kinds: 1 integer, 2 float, 3 text, 4 blob, 5 null.def stmt.column.kind(stmt: U32, index: U32) -> IO(Result<&1, &1, U32 & String, U32>):  import "./effs/sqlite.c"  import "./effs/sqlite.js"def stmt.column.int(stmt: U32, index: U32) -> IO(Result<&1, &1, U32 & String, U32>):  import "./effs/sqlite.c"  import "./effs/sqlite.js"def stmt.column.text(stmt: U32, index: U32) -> IO(Result<&1, &1, U32 & String, String>):  import "./effs/sqlite.c"  import "./effs/sqlite.js"def stmt.column.blob(stmt: U32, index: U32) -> IO(Result<&1, &1, U32 & String, U32 & Array<U32>>):  import "./effs/sqlite.c"  import "./effs/sqlite.js"