SQLiteUtils.def 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. DEFINITION MODULE SQLiteUtils ;
  2. (*
  3. m2SQLITE - small pure-Modula-2 helpers over the FOR "C" SQLite
  4. binding. CStrToM2 copies NUL-terminated C strings (ADDRESS)
  5. into Modula-2 CHAR arrays (NUL-terminated, truncated to fit).
  6. StaticDestr/TransientDestr return the SQLITE_STATIC and
  7. SQLITE_TRANSIENT destructor sentinels; BindTextCopy/BindBlobCopy
  8. bind with SQLITE_TRANSIENT so SQLite copies the value.
  9. *)
  10. FROM SYSTEM IMPORT ADDRESS;
  11. FROM SQLite IMPORT DbHandle, StmtHandle, ContextHandle, ValueHandle,
  12. BackupHandle;
  13. EXPORT UNQUALIFIED
  14. CStrToM2, ErrMsg, ErrStr, LibVersionStr,
  15. StaticDestr, TransientDestr,
  16. BindTextCopy, BindBlobCopy,
  17. ValueText, ResultTextCopy,
  18. BackupToFile,
  19. GetTable, TableCell, FreeTable,
  20. ExecSimple, ExecWithErr;
  21. PROCEDURE CStrToM2 (src: ADDRESS; VAR dst: ARRAY OF CHAR);
  22. PROCEDURE ErrMsg (db: DbHandle; VAR buf: ARRAY OF CHAR);
  23. PROCEDURE ErrStr (code: INTEGER; VAR buf: ARRAY OF CHAR);
  24. PROCEDURE LibVersionStr (VAR buf: ARRAY OF CHAR);
  25. PROCEDURE StaticDestr () : ADDRESS;
  26. PROCEDURE TransientDestr () : ADDRESS;
  27. PROCEDURE BindTextCopy (stmt: StmtHandle; idx: INTEGER;
  28. v: ARRAY OF CHAR) : INTEGER;
  29. PROCEDURE BindBlobCopy (stmt: StmtHandle; idx: INTEGER;
  30. data: ADDRESS; n: INTEGER) : INTEGER;
  31. PROCEDURE ValueText (v: ValueHandle; VAR buf: ARRAY OF CHAR);
  32. PROCEDURE ResultTextCopy (ctx: ContextHandle; str: ARRAY OF CHAR);
  33. PROCEDURE BackupToFile (srcDb: DbHandle;
  34. filename: ARRAY OF CHAR) : INTEGER;
  35. PROCEDURE GetTable (db: DbHandle; sql: ARRAY OF CHAR;
  36. VAR tbl: ADDRESS; VAR rows, cols: INTEGER;
  37. VAR errbuf: ARRAY OF CHAR) : INTEGER;
  38. PROCEDURE TableCell (tbl: ADDRESS; cols, row, col: INTEGER;
  39. VAR buf: ARRAY OF CHAR);
  40. PROCEDURE FreeTable (tbl: ADDRESS);
  41. PROCEDURE ExecSimple (db: DbHandle; sql: ARRAY OF CHAR) : INTEGER;
  42. PROCEDURE ExecWithErr (db: DbHandle; sql: ARRAY OF CHAR;
  43. VAR buf: ARRAY OF CHAR) : INTEGER;
  44. END SQLiteUtils.