DEFINITION MODULE SQLiteUtils ; (* m2SQLITE - small pure-Modula-2 helpers over the FOR "C" SQLite binding. CStrToM2 copies NUL-terminated C strings (ADDRESS) into Modula-2 CHAR arrays (NUL-terminated, truncated to fit). StaticDestr/TransientDestr return the SQLITE_STATIC and SQLITE_TRANSIENT destructor sentinels; BindTextCopy/BindBlobCopy bind with SQLITE_TRANSIENT so SQLite copies the value. *) FROM SYSTEM IMPORT ADDRESS; FROM SQLite IMPORT DbHandle, StmtHandle; EXPORT UNQUALIFIED CStrToM2, ErrMsg, ErrStr, LibVersionStr, StaticDestr, TransientDestr, BindTextCopy, BindBlobCopy, ExecSimple, ExecWithErr; PROCEDURE CStrToM2 (src: ADDRESS; VAR dst: ARRAY OF CHAR); PROCEDURE ErrMsg (db: DbHandle; VAR buf: ARRAY OF CHAR); PROCEDURE ErrStr (code: INTEGER; VAR buf: ARRAY OF CHAR); PROCEDURE LibVersionStr (VAR buf: ARRAY OF CHAR); PROCEDURE StaticDestr () : ADDRESS; PROCEDURE TransientDestr () : ADDRESS; PROCEDURE BindTextCopy (stmt: StmtHandle; idx: INTEGER; v: ARRAY OF CHAR) : INTEGER; PROCEDURE BindBlobCopy (stmt: StmtHandle; idx: INTEGER; data: ADDRESS; n: INTEGER) : INTEGER; PROCEDURE ExecSimple (db: DbHandle; sql: ARRAY OF CHAR) : INTEGER; PROCEDURE ExecWithErr (db: DbHandle; sql: ARRAY OF CHAR; VAR buf: ARRAY OF CHAR) : INTEGER; END SQLiteUtils.