SQLiteUtils.def 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738
  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. EXPORT UNQUALIFIED
  13. CStrToM2, ErrMsg, ErrStr, LibVersionStr,
  14. StaticDestr, TransientDestr,
  15. BindTextCopy, BindBlobCopy,
  16. ValueText, ResultTextCopy,
  17. ExecSimple, ExecWithErr;
  18. PROCEDURE CStrToM2 (src: ADDRESS; VAR dst: ARRAY OF CHAR);
  19. PROCEDURE ErrMsg (db: DbHandle; VAR buf: ARRAY OF CHAR);
  20. PROCEDURE ErrStr (code: INTEGER; VAR buf: ARRAY OF CHAR);
  21. PROCEDURE LibVersionStr (VAR buf: ARRAY OF CHAR);
  22. PROCEDURE StaticDestr () : ADDRESS;
  23. PROCEDURE TransientDestr () : ADDRESS;
  24. PROCEDURE BindTextCopy (stmt: StmtHandle; idx: INTEGER;
  25. v: ARRAY OF CHAR) : INTEGER;
  26. PROCEDURE BindBlobCopy (stmt: StmtHandle; idx: INTEGER;
  27. data: ADDRESS; n: INTEGER) : INTEGER;
  28. PROCEDURE ValueText (v: ValueHandle; VAR buf: ARRAY OF CHAR);
  29. PROCEDURE ResultTextCopy (ctx: ContextHandle; str: ARRAY OF CHAR);
  30. PROCEDURE ExecSimple (db: DbHandle; sql: ARRAY OF CHAR) : INTEGER;
  31. PROCEDURE ExecWithErr (db: DbHandle; sql: ARRAY OF CHAR;
  32. VAR buf: ARRAY OF CHAR) : INTEGER;
  33. END SQLiteUtils.