DEFINITION MODULE FOR "C" SQLite; (* Scalar SQLite binding: connection setup, prepared statements, scalar binding/results, column metadata and error reporting. The full binding stays in m2SQLITE for later porting. *) FROM SYSTEM IMPORT ADDRESS; FROM CStr IMPORT CString; EXPORT UNQUALIFIED SQLiteOk, SQLiteError, SQLiteInternal, SQLitePerm, SQLiteAbort, SQLiteBusy, SQLiteLocked, SQLiteNoMem, SQLiteReadOnly, SQLiteInterrupt, SQLiteIoErr, SQLiteCorrupt, SQLiteNotFound, SQLiteFull, SQLiteCantOpen, SQLiteProtocol, SQLiteEmpty, SQLiteSchema, SQLiteTooBig, SQLiteConstraint, SQLiteMismatch, SQLiteMisuse, SQLiteNoLfs, SQLiteAuth, SQLiteFormat, SQLiteRange, SQLiteNotADb, SQLiteNotice, SQLiteWarning, SQLiteRow, SQLiteDone, SQLiteInteger, SQLiteFloat, SQLiteText, SQLiteBlob, SQLiteNull, SQLiteConstraintPrimaryKey, SQLiteConstraintUnique, sqlite3_open, sqlite3_exec, sqlite3_close, sqlite3_prepare_v2, sqlite3_bind_int, sqlite3_bind_int64, sqlite3_bind_double, sqlite3_bind_null, sqlite3_bind_text, sqlite3_step, sqlite3_reset, sqlite3_clear_bindings, sqlite3_column_count, sqlite3_data_count, sqlite3_column_type, sqlite3_column_bytes, sqlite3_column_int, sqlite3_column_int64, sqlite3_column_double, sqlite3_column_text, sqlite3_column_name, sqlite3_column_decltype, sqlite3_finalize, sqlite3_errmsg, sqlite3_errstr, sqlite3_errcode, sqlite3_extended_errcode, sqlite3_extended_result_codes, sqlite3_free, SQLiteTransient; CONST SQLiteOk = 0; SQLiteError = 1; SQLiteInternal = 2; SQLitePerm = 3; SQLiteAbort = 4; SQLiteBusy = 5; SQLiteLocked = 6; SQLiteNoMem = 7; SQLiteReadOnly = 8; SQLiteInterrupt = 9; SQLiteIoErr = 10; SQLiteCorrupt = 11; SQLiteNotFound = 12; SQLiteFull = 13; SQLiteCantOpen = 14; SQLiteProtocol = 15; SQLiteEmpty = 16; SQLiteSchema = 17; SQLiteTooBig = 18; SQLiteConstraint = 19; SQLiteMismatch = 20; SQLiteMisuse = 21; SQLiteNoLfs = 22; SQLiteAuth = 23; SQLiteFormat = 24; SQLiteRange = 25; SQLiteNotADb = 26; SQLiteNotice = 27; SQLiteWarning = 28; SQLiteRow = 100; SQLiteDone = 101; SQLiteInteger = 1; SQLiteFloat = 2; SQLiteText = 3; SQLiteBlob = 4; SQLiteNull = 5; SQLiteConstraintPrimaryKey = 1555; SQLiteConstraintUnique = 2067; PROCEDURE sqlite3_open (filename : ARRAY OF CHAR; VAR db : ADDRESS) : INTEGER; PROCEDURE sqlite3_exec (db : ADDRESS; sql : ARRAY OF CHAR; callback, arg : ADDRESS; VAR 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_int64 (stmt : ADDRESS; idx : INTEGER; value : LONGINT) : INTEGER; PROCEDURE sqlite3_bind_double (stmt : ADDRESS; idx : INTEGER; value : REAL) : INTEGER; PROCEDURE sqlite3_bind_null (stmt : ADDRESS; idx : 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_reset (stmt : ADDRESS) : INTEGER; PROCEDURE sqlite3_clear_bindings (stmt : ADDRESS) : INTEGER; PROCEDURE sqlite3_column_count (stmt : ADDRESS) : INTEGER; PROCEDURE sqlite3_data_count (stmt : ADDRESS) : INTEGER; PROCEDURE sqlite3_column_type (stmt : ADDRESS; col : INTEGER) : INTEGER; PROCEDURE sqlite3_column_bytes (stmt : ADDRESS; col : INTEGER) : INTEGER; PROCEDURE sqlite3_column_int (stmt : ADDRESS; col : INTEGER) : INTEGER; PROCEDURE sqlite3_column_int64 (stmt : ADDRESS; col : INTEGER) : LONGINT; PROCEDURE sqlite3_column_double (stmt : ADDRESS; col : INTEGER) : REAL; PROCEDURE sqlite3_column_text (stmt : ADDRESS; col : INTEGER) : CString; PROCEDURE sqlite3_column_name (stmt : ADDRESS; col : INTEGER) : CString; PROCEDURE sqlite3_column_decltype (stmt : ADDRESS; col : INTEGER) : CString; PROCEDURE sqlite3_finalize (stmt : ADDRESS) : INTEGER; PROCEDURE sqlite3_errmsg (db : ADDRESS) : CString; PROCEDURE sqlite3_errstr (code : INTEGER) : CString; PROCEDURE sqlite3_errcode (db : ADDRESS) : INTEGER; PROCEDURE sqlite3_extended_errcode (db : ADDRESS) : INTEGER; PROCEDURE sqlite3_extended_result_codes (db : ADDRESS; onoff : INTEGER) : INTEGER; PROCEDURE sqlite3_free (p : ADDRESS); PROCEDURE SQLiteTransient () : ADDRESS; EXTERNAL "m2_sqlite_transient"; (* The SQLITE_TRANSIENT destructor sentinel: SQLite copies bound text. *) END SQLite.