SQLite.def 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. DEFINITION MODULE FOR "C" SQLite;
  2. (* Minimal first SQLite binding: open an in-memory database, execute SQL,
  3. and close it. The full binding stays in m2SQLITE for later porting. *)
  4. FROM SYSTEM IMPORT ADDRESS;
  5. FROM CStr IMPORT CString;
  6. EXPORT UNQUALIFIED
  7. SQLiteOk, SQLiteRow, SQLiteDone,
  8. sqlite3_open,
  9. sqlite3_exec,
  10. sqlite3_close,
  11. sqlite3_prepare_v2,
  12. sqlite3_bind_int,
  13. sqlite3_bind_text,
  14. sqlite3_step,
  15. sqlite3_column_int,
  16. sqlite3_column_text,
  17. sqlite3_finalize,
  18. SQLiteTransient;
  19. CONST
  20. SQLiteOk = 0;
  21. SQLiteRow = 100;
  22. SQLiteDone = 101;
  23. PROCEDURE sqlite3_open (filename : ARRAY OF CHAR;
  24. VAR db : ADDRESS) : INTEGER;
  25. PROCEDURE sqlite3_exec (db : ADDRESS;
  26. sql : ARRAY OF CHAR;
  27. callback, arg, errmsg : ADDRESS) : INTEGER;
  28. PROCEDURE sqlite3_close (db : ADDRESS) : INTEGER;
  29. PROCEDURE sqlite3_prepare_v2 (db : ADDRESS;
  30. sql : ARRAY OF CHAR;
  31. nBytes : INTEGER;
  32. VAR stmt : ADDRESS;
  33. tail : ADDRESS) : INTEGER;
  34. PROCEDURE sqlite3_bind_int (stmt : ADDRESS;
  35. idx : INTEGER;
  36. value : INTEGER) : INTEGER;
  37. PROCEDURE sqlite3_bind_text (stmt : ADDRESS;
  38. idx : INTEGER;
  39. value : ARRAY OF CHAR;
  40. nBytes : INTEGER;
  41. destructor : ADDRESS) : INTEGER;
  42. PROCEDURE sqlite3_step (stmt : ADDRESS) : INTEGER;
  43. PROCEDURE sqlite3_column_int (stmt : ADDRESS;
  44. col : INTEGER) : INTEGER;
  45. PROCEDURE sqlite3_column_text (stmt : ADDRESS;
  46. col : INTEGER) : CString;
  47. PROCEDURE sqlite3_finalize (stmt : ADDRESS) : INTEGER;
  48. PROCEDURE SQLiteTransient () : ADDRESS;
  49. EXTERNAL "m2_sqlite_transient";
  50. (* The SQLITE_TRANSIENT destructor sentinel: SQLite copies bound text. *)
  51. END SQLite.