DEFINITION MODULE FOR "C" SQLite; (* Minimal first SQLite binding: open an in-memory database, execute SQL, and close it. The full binding stays in m2SQLITE for later porting. *) FROM SYSTEM IMPORT ADDRESS; FROM CStr IMPORT CString; EXPORT UNQUALIFIED SQLiteOk, SQLiteRow, SQLiteDone, sqlite3_open, sqlite3_exec, sqlite3_close, sqlite3_prepare_v2, sqlite3_bind_int, sqlite3_bind_text, sqlite3_step, sqlite3_column_int, sqlite3_column_text, sqlite3_finalize; CONST SQLiteOk = 0; SQLiteRow = 100; SQLiteDone = 101; PROCEDURE sqlite3_open (filename : ARRAY OF CHAR; VAR db : ADDRESS) : INTEGER; PROCEDURE sqlite3_exec (db : ADDRESS; sql : ARRAY OF CHAR; callback, arg, errmsg : ADDRESS) : INTEGER; PROCEDURE sqlite3_close (db : ADDRESS) : INTEGER; PROCEDURE sqlite3_prepare_v2 (db : ADDRESS; sql : ARRAY OF CHAR; nBytes : INTEGER; VAR stmt : ADDRESS; tail : ADDRESS) : INTEGER; PROCEDURE sqlite3_bind_int (stmt : ADDRESS; idx : INTEGER; value : INTEGER) : INTEGER; PROCEDURE sqlite3_bind_text (stmt : ADDRESS; idx : INTEGER; value : ARRAY OF CHAR; nBytes : INTEGER; destructor : ADDRESS) : INTEGER; PROCEDURE sqlite3_step (stmt : ADDRESS) : INTEGER; PROCEDURE sqlite3_column_int (stmt : ADDRESS; col : INTEGER) : INTEGER; PROCEDURE sqlite3_column_text (stmt : ADDRESS; col : INTEGER) : CString; PROCEDURE sqlite3_finalize (stmt : ADDRESS) : INTEGER; END SQLite.