| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296 |
- DEFINITION MODULE FOR "C" SQLite;
- (* Core SQLite binding: connection setup, prepared statements,
- scalar/BLOB binding and results, column metadata, row changes,
- incremental BLOB I/O, error reporting, exec callbacks and
- user-defined scalar functions.
- 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,
- SQLiteOpenReadOnly, SQLiteOpenReadWrite, SQLiteOpenCreate,
- SQLiteOpenURI, SQLiteOpenMemory, SQLiteOpenNoMutex,
- SQLiteOpenFullMutex, SQLiteOpenSharedCache, SQLiteOpenPrivateCache,
- SQLiteOpenWal,
- SQLiteUtf8, SQLiteUtf16Le, SQLiteUtf16Be, SQLiteUtf16, SQLiteAny,
- SQLiteDeterministic,
- sqlite3_open,
- sqlite3_open_v2,
- sqlite3_exec,
- sqlite3_close,
- sqlite3_close_v2,
- sqlite3_prepare_v2,
- sqlite3_bind_int,
- sqlite3_bind_int64,
- sqlite3_bind_double,
- sqlite3_bind_null,
- sqlite3_bind_blob,
- sqlite3_bind_zeroblob,
- 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_blob,
- sqlite3_column_text,
- sqlite3_column_name,
- sqlite3_column_decltype,
- sqlite3_finalize,
- sqlite3_changes,
- sqlite3_total_changes,
- sqlite3_last_insert_rowid,
- sqlite3_blob_open,
- sqlite3_blob_close,
- sqlite3_blob_read,
- sqlite3_blob_write,
- sqlite3_blob_bytes,
- sqlite3_blob_reopen,
- sqlite3_create_function_v2,
- sqlite3_value_type,
- sqlite3_value_int,
- sqlite3_value_int64,
- sqlite3_value_double,
- sqlite3_value_text,
- sqlite3_value_blob,
- sqlite3_value_bytes,
- sqlite3_result_null,
- sqlite3_result_int,
- sqlite3_result_int64,
- sqlite3_result_double,
- sqlite3_result_text,
- sqlite3_result_blob,
- sqlite3_result_error,
- sqlite3_result_error_code,
- sqlite3_user_data,
- sqlite3_context_db_handle,
- sqlite3_errmsg,
- sqlite3_errstr,
- sqlite3_errcode,
- sqlite3_extended_errcode,
- sqlite3_extended_result_codes,
- sqlite3_free,
- SQLiteArrayAt,
- 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;
- SQLiteOpenReadOnly = 1;
- SQLiteOpenReadWrite = 2;
- SQLiteOpenCreate = 4;
- SQLiteOpenURI = 64;
- SQLiteOpenMemory = 128;
- SQLiteOpenNoMutex = 32768;
- SQLiteOpenFullMutex = 65536;
- SQLiteOpenSharedCache = 131072;
- SQLiteOpenPrivateCache = 262144;
- SQLiteOpenWal = 524288;
- SQLiteUtf8 = 1;
- SQLiteUtf16Le = 2;
- SQLiteUtf16Be = 3;
- SQLiteUtf16 = 4;
- SQLiteAny = 5;
- SQLiteDeterministic = 2048;
- PROCEDURE sqlite3_open (filename : ARRAY OF CHAR;
- VAR db : ADDRESS) : INTEGER;
- PROCEDURE sqlite3_open_v2 (filename : ARRAY OF CHAR;
- VAR db : ADDRESS;
- flags : INTEGER;
- vfs : CString) : 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_close_v2 (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_blob (stmt : ADDRESS;
- idx : INTEGER;
- data : ADDRESS;
- nBytes : INTEGER;
- destructor : ADDRESS) : INTEGER;
- PROCEDURE sqlite3_bind_zeroblob (stmt : ADDRESS;
- idx : INTEGER;
- nBytes : 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_blob (stmt : ADDRESS;
- col : INTEGER) : ADDRESS;
- 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_changes (db : ADDRESS) : INTEGER;
- PROCEDURE sqlite3_total_changes (db : ADDRESS) : INTEGER;
- PROCEDURE sqlite3_last_insert_rowid (db : ADDRESS) : LONGINT;
- PROCEDURE sqlite3_blob_open (db : ADDRESS;
- dbName, tableName, columnName : ARRAY OF CHAR;
- rowid : LONGINT;
- flags : INTEGER;
- VAR blob : ADDRESS) : INTEGER;
- PROCEDURE sqlite3_blob_close (blob : ADDRESS) : INTEGER;
- PROCEDURE sqlite3_blob_read (blob : ADDRESS;
- data : ADDRESS;
- nBytes : INTEGER;
- offset : INTEGER) : INTEGER;
- PROCEDURE sqlite3_blob_write (blob : ADDRESS;
- data : ADDRESS;
- nBytes : INTEGER;
- offset : INTEGER) : INTEGER;
- PROCEDURE sqlite3_blob_bytes (blob : ADDRESS) : INTEGER;
- PROCEDURE sqlite3_blob_reopen (blob : ADDRESS;
- rowid : LONGINT) : INTEGER;
- (* User-defined scalar functions. xFunc receives
- (sqlite3_context*, int argc, sqlite3_value** argv); use
- SQLiteArrayAt(argv, i) to reach each value. *)
- PROCEDURE sqlite3_create_function_v2 (db : ADDRESS;
- name : ARRAY OF CHAR;
- nArgs : INTEGER;
- textRep : INTEGER;
- userData : ADDRESS;
- xFunc, xStep, xFinal : ADDRESS;
- xDestroy : ADDRESS) : INTEGER;
- PROCEDURE sqlite3_value_type (value : ADDRESS) : INTEGER;
- PROCEDURE sqlite3_value_int (value : ADDRESS) : INTEGER;
- PROCEDURE sqlite3_value_int64 (value : ADDRESS) : LONGINT;
- PROCEDURE sqlite3_value_double (value : ADDRESS) : REAL;
- PROCEDURE sqlite3_value_text (value : ADDRESS) : CString;
- PROCEDURE sqlite3_value_blob (value : ADDRESS) : ADDRESS;
- PROCEDURE sqlite3_value_bytes (value : ADDRESS) : INTEGER;
- PROCEDURE sqlite3_result_null (ctx : ADDRESS);
- PROCEDURE sqlite3_result_int (ctx : ADDRESS; value : INTEGER);
- PROCEDURE sqlite3_result_int64 (ctx : ADDRESS; value : LONGINT);
- PROCEDURE sqlite3_result_double (ctx : ADDRESS; value : REAL);
- PROCEDURE sqlite3_result_text (ctx : ADDRESS;
- value : ARRAY OF CHAR;
- nBytes : INTEGER;
- destructor : ADDRESS);
- PROCEDURE sqlite3_result_blob (ctx : ADDRESS;
- data : ADDRESS;
- nBytes : INTEGER;
- destructor : ADDRESS);
- PROCEDURE sqlite3_result_error (ctx : ADDRESS;
- msg : ARRAY OF CHAR;
- nBytes : INTEGER);
- PROCEDURE sqlite3_result_error_code (ctx : ADDRESS; code : INTEGER);
- PROCEDURE sqlite3_user_data (ctx : ADDRESS) : ADDRESS;
- PROCEDURE sqlite3_context_db_handle (ctx : ADDRESS) : ADDRESS;
- 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 SQLiteArrayAt (array : ADDRESS; idx : INTEGER) : ADDRESS;
- EXTERNAL "m2_sqlite_array_at";
- (* Index a C array of pointers, such as char **argv or sqlite3_value **. *)
- PROCEDURE SQLiteTransient () : ADDRESS;
- EXTERNAL "m2_sqlite_transient";
- (* The SQLITE_TRANSIENT destructor sentinel: SQLite copies bound data. *)
- END SQLite.
|