SQLiteUtils.def 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  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. ExecSimple, ExecWithErr;
  20. PROCEDURE CStrToM2 (src: ADDRESS; VAR dst: ARRAY OF CHAR);
  21. PROCEDURE ErrMsg (db: DbHandle; VAR buf: ARRAY OF CHAR);
  22. PROCEDURE ErrStr (code: INTEGER; VAR buf: ARRAY OF CHAR);
  23. PROCEDURE LibVersionStr (VAR buf: ARRAY OF CHAR);
  24. PROCEDURE StaticDestr () : ADDRESS;
  25. PROCEDURE TransientDestr () : ADDRESS;
  26. PROCEDURE BindTextCopy (stmt: StmtHandle; idx: INTEGER;
  27. v: ARRAY OF CHAR) : INTEGER;
  28. PROCEDURE BindBlobCopy (stmt: StmtHandle; idx: INTEGER;
  29. data: ADDRESS; n: INTEGER) : INTEGER;
  30. PROCEDURE ValueText (v: ValueHandle; VAR buf: ARRAY OF CHAR);
  31. PROCEDURE ResultTextCopy (ctx: ContextHandle; str: ARRAY OF CHAR);
  32. PROCEDURE BackupToFile (srcDb: DbHandle;
  33. filename: ARRAY OF CHAR) : INTEGER;
  34. PROCEDURE ExecSimple (db: DbHandle; sql: ARRAY OF CHAR) : INTEGER;
  35. PROCEDURE ExecWithErr (db: DbHandle; sql: ARRAY OF CHAR;
  36. VAR buf: ARRAY OF CHAR) : INTEGER;
  37. END SQLiteUtils.