SQLite.def 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224
  1. DEFINITION MODULE FOR "C" SQLite;
  2. (* Core SQLite binding: connection setup, prepared statements,
  3. scalar/BLOB binding and results, column metadata, row changes,
  4. incremental BLOB I/O and error reporting.
  5. The full binding stays in m2SQLITE for later porting. *)
  6. FROM SYSTEM IMPORT ADDRESS;
  7. FROM CStr IMPORT CString;
  8. EXPORT UNQUALIFIED
  9. SQLiteOk, SQLiteError, SQLiteInternal, SQLitePerm, SQLiteAbort,
  10. SQLiteBusy, SQLiteLocked, SQLiteNoMem, SQLiteReadOnly,
  11. SQLiteInterrupt, SQLiteIoErr, SQLiteCorrupt, SQLiteNotFound,
  12. SQLiteFull, SQLiteCantOpen, SQLiteProtocol, SQLiteEmpty,
  13. SQLiteSchema, SQLiteTooBig, SQLiteConstraint, SQLiteMismatch,
  14. SQLiteMisuse, SQLiteNoLfs, SQLiteAuth, SQLiteFormat, SQLiteRange,
  15. SQLiteNotADb, SQLiteNotice, SQLiteWarning, SQLiteRow, SQLiteDone,
  16. SQLiteInteger, SQLiteFloat, SQLiteText, SQLiteBlob, SQLiteNull,
  17. SQLiteConstraintPrimaryKey, SQLiteConstraintUnique,
  18. SQLiteOpenReadOnly, SQLiteOpenReadWrite, SQLiteOpenCreate,
  19. SQLiteOpenURI, SQLiteOpenMemory, SQLiteOpenNoMutex,
  20. SQLiteOpenFullMutex, SQLiteOpenSharedCache, SQLiteOpenPrivateCache,
  21. SQLiteOpenWal,
  22. sqlite3_open,
  23. sqlite3_open_v2,
  24. sqlite3_exec,
  25. sqlite3_close,
  26. sqlite3_close_v2,
  27. sqlite3_prepare_v2,
  28. sqlite3_bind_int,
  29. sqlite3_bind_int64,
  30. sqlite3_bind_double,
  31. sqlite3_bind_null,
  32. sqlite3_bind_blob,
  33. sqlite3_bind_zeroblob,
  34. sqlite3_bind_text,
  35. sqlite3_step,
  36. sqlite3_reset,
  37. sqlite3_clear_bindings,
  38. sqlite3_column_count,
  39. sqlite3_data_count,
  40. sqlite3_column_type,
  41. sqlite3_column_bytes,
  42. sqlite3_column_int,
  43. sqlite3_column_int64,
  44. sqlite3_column_double,
  45. sqlite3_column_blob,
  46. sqlite3_column_text,
  47. sqlite3_column_name,
  48. sqlite3_column_decltype,
  49. sqlite3_finalize,
  50. sqlite3_changes,
  51. sqlite3_total_changes,
  52. sqlite3_last_insert_rowid,
  53. sqlite3_blob_open,
  54. sqlite3_blob_close,
  55. sqlite3_blob_read,
  56. sqlite3_blob_write,
  57. sqlite3_blob_bytes,
  58. sqlite3_blob_reopen,
  59. sqlite3_errmsg,
  60. sqlite3_errstr,
  61. sqlite3_errcode,
  62. sqlite3_extended_errcode,
  63. sqlite3_extended_result_codes,
  64. sqlite3_free,
  65. SQLiteTransient;
  66. CONST
  67. SQLiteOk = 0;
  68. SQLiteError = 1;
  69. SQLiteInternal = 2;
  70. SQLitePerm = 3;
  71. SQLiteAbort = 4;
  72. SQLiteBusy = 5;
  73. SQLiteLocked = 6;
  74. SQLiteNoMem = 7;
  75. SQLiteReadOnly = 8;
  76. SQLiteInterrupt = 9;
  77. SQLiteIoErr = 10;
  78. SQLiteCorrupt = 11;
  79. SQLiteNotFound = 12;
  80. SQLiteFull = 13;
  81. SQLiteCantOpen = 14;
  82. SQLiteProtocol = 15;
  83. SQLiteEmpty = 16;
  84. SQLiteSchema = 17;
  85. SQLiteTooBig = 18;
  86. SQLiteConstraint = 19;
  87. SQLiteMismatch = 20;
  88. SQLiteMisuse = 21;
  89. SQLiteNoLfs = 22;
  90. SQLiteAuth = 23;
  91. SQLiteFormat = 24;
  92. SQLiteRange = 25;
  93. SQLiteNotADb = 26;
  94. SQLiteNotice = 27;
  95. SQLiteWarning = 28;
  96. SQLiteRow = 100;
  97. SQLiteDone = 101;
  98. SQLiteInteger = 1;
  99. SQLiteFloat = 2;
  100. SQLiteText = 3;
  101. SQLiteBlob = 4;
  102. SQLiteNull = 5;
  103. SQLiteConstraintPrimaryKey = 1555;
  104. SQLiteConstraintUnique = 2067;
  105. SQLiteOpenReadOnly = 1;
  106. SQLiteOpenReadWrite = 2;
  107. SQLiteOpenCreate = 4;
  108. SQLiteOpenURI = 64;
  109. SQLiteOpenMemory = 128;
  110. SQLiteOpenNoMutex = 32768;
  111. SQLiteOpenFullMutex = 65536;
  112. SQLiteOpenSharedCache = 131072;
  113. SQLiteOpenPrivateCache = 262144;
  114. SQLiteOpenWal = 524288;
  115. PROCEDURE sqlite3_open (filename : ARRAY OF CHAR;
  116. VAR db : ADDRESS) : INTEGER;
  117. PROCEDURE sqlite3_open_v2 (filename : ARRAY OF CHAR;
  118. VAR db : ADDRESS;
  119. flags : INTEGER;
  120. vfs : CString) : INTEGER;
  121. PROCEDURE sqlite3_exec (db : ADDRESS;
  122. sql : ARRAY OF CHAR;
  123. callback, arg : ADDRESS;
  124. VAR errmsg : ADDRESS) : INTEGER;
  125. PROCEDURE sqlite3_close (db : ADDRESS) : INTEGER;
  126. PROCEDURE sqlite3_close_v2 (db : ADDRESS) : INTEGER;
  127. PROCEDURE sqlite3_prepare_v2 (db : ADDRESS;
  128. sql : ARRAY OF CHAR;
  129. nBytes : INTEGER;
  130. VAR stmt : ADDRESS;
  131. tail : ADDRESS) : INTEGER;
  132. PROCEDURE sqlite3_bind_int (stmt : ADDRESS;
  133. idx : INTEGER;
  134. value : INTEGER) : INTEGER;
  135. PROCEDURE sqlite3_bind_int64 (stmt : ADDRESS;
  136. idx : INTEGER;
  137. value : LONGINT) : INTEGER;
  138. PROCEDURE sqlite3_bind_double (stmt : ADDRESS;
  139. idx : INTEGER;
  140. value : REAL) : INTEGER;
  141. PROCEDURE sqlite3_bind_null (stmt : ADDRESS;
  142. idx : INTEGER) : INTEGER;
  143. PROCEDURE sqlite3_bind_blob (stmt : ADDRESS;
  144. idx : INTEGER;
  145. data : ADDRESS;
  146. nBytes : INTEGER;
  147. destructor : ADDRESS) : INTEGER;
  148. PROCEDURE sqlite3_bind_zeroblob (stmt : ADDRESS;
  149. idx : INTEGER;
  150. nBytes : INTEGER) : INTEGER;
  151. PROCEDURE sqlite3_bind_text (stmt : ADDRESS;
  152. idx : INTEGER;
  153. value : ARRAY OF CHAR;
  154. nBytes : INTEGER;
  155. destructor : ADDRESS) : INTEGER;
  156. PROCEDURE sqlite3_step (stmt : ADDRESS) : INTEGER;
  157. PROCEDURE sqlite3_reset (stmt : ADDRESS) : INTEGER;
  158. PROCEDURE sqlite3_clear_bindings (stmt : ADDRESS) : INTEGER;
  159. PROCEDURE sqlite3_column_count (stmt : ADDRESS) : INTEGER;
  160. PROCEDURE sqlite3_data_count (stmt : ADDRESS) : INTEGER;
  161. PROCEDURE sqlite3_column_type (stmt : ADDRESS;
  162. col : INTEGER) : INTEGER;
  163. PROCEDURE sqlite3_column_bytes (stmt : ADDRESS;
  164. col : INTEGER) : INTEGER;
  165. PROCEDURE sqlite3_column_int (stmt : ADDRESS;
  166. col : INTEGER) : INTEGER;
  167. PROCEDURE sqlite3_column_int64 (stmt : ADDRESS;
  168. col : INTEGER) : LONGINT;
  169. PROCEDURE sqlite3_column_double (stmt : ADDRESS;
  170. col : INTEGER) : REAL;
  171. PROCEDURE sqlite3_column_blob (stmt : ADDRESS;
  172. col : INTEGER) : ADDRESS;
  173. PROCEDURE sqlite3_column_text (stmt : ADDRESS;
  174. col : INTEGER) : CString;
  175. PROCEDURE sqlite3_column_name (stmt : ADDRESS;
  176. col : INTEGER) : CString;
  177. PROCEDURE sqlite3_column_decltype (stmt : ADDRESS;
  178. col : INTEGER) : CString;
  179. PROCEDURE sqlite3_finalize (stmt : ADDRESS) : INTEGER;
  180. PROCEDURE sqlite3_changes (db : ADDRESS) : INTEGER;
  181. PROCEDURE sqlite3_total_changes (db : ADDRESS) : INTEGER;
  182. PROCEDURE sqlite3_last_insert_rowid (db : ADDRESS) : LONGINT;
  183. PROCEDURE sqlite3_blob_open (db : ADDRESS;
  184. dbName, tableName, columnName : ARRAY OF CHAR;
  185. rowid : LONGINT;
  186. flags : INTEGER;
  187. VAR blob : ADDRESS) : INTEGER;
  188. PROCEDURE sqlite3_blob_close (blob : ADDRESS) : INTEGER;
  189. PROCEDURE sqlite3_blob_read (blob : ADDRESS;
  190. data : ADDRESS;
  191. nBytes : INTEGER;
  192. offset : INTEGER) : INTEGER;
  193. PROCEDURE sqlite3_blob_write (blob : ADDRESS;
  194. data : ADDRESS;
  195. nBytes : INTEGER;
  196. offset : INTEGER) : INTEGER;
  197. PROCEDURE sqlite3_blob_bytes (blob : ADDRESS) : INTEGER;
  198. PROCEDURE sqlite3_blob_reopen (blob : ADDRESS;
  199. rowid : LONGINT) : INTEGER;
  200. PROCEDURE sqlite3_errmsg (db : ADDRESS) : CString;
  201. PROCEDURE sqlite3_errstr (code : INTEGER) : CString;
  202. PROCEDURE sqlite3_errcode (db : ADDRESS) : INTEGER;
  203. PROCEDURE sqlite3_extended_errcode (db : ADDRESS) : INTEGER;
  204. PROCEDURE sqlite3_extended_result_codes (db : ADDRESS;
  205. onoff : INTEGER) : INTEGER;
  206. PROCEDURE sqlite3_free (p : ADDRESS);
  207. PROCEDURE SQLiteTransient () : ADDRESS;
  208. EXTERNAL "m2_sqlite_transient";
  209. (* The SQLITE_TRANSIENT destructor sentinel: SQLite copies bound text. *)
  210. END SQLite.