SQLite.def 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522
  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, error reporting, exec and connection hooks,
  5. and user-defined scalar functions.
  6. The full binding stays in m2SQLITE for later porting. *)
  7. FROM SYSTEM IMPORT ADDRESS;
  8. FROM CStr IMPORT CString;
  9. EXPORT UNQUALIFIED
  10. SQLiteOk, SQLiteError, SQLiteInternal, SQLitePerm, SQLiteAbort,
  11. SQLiteBusy, SQLiteLocked, SQLiteNoMem, SQLiteReadOnly,
  12. SQLiteInterrupt, SQLiteIoErr, SQLiteCorrupt, SQLiteNotFound,
  13. SQLiteFull, SQLiteCantOpen, SQLiteProtocol, SQLiteEmpty,
  14. SQLiteSchema, SQLiteTooBig, SQLiteConstraint, SQLiteMismatch,
  15. SQLiteMisuse, SQLiteNoLfs, SQLiteAuth, SQLiteFormat, SQLiteRange,
  16. SQLiteNotADb, SQLiteNotice, SQLiteWarning, SQLiteRow, SQLiteDone,
  17. SQLiteInteger, SQLiteFloat, SQLiteText, SQLiteBlob, SQLiteNull,
  18. SQLiteConstraintPrimaryKey, SQLiteConstraintUnique,
  19. SQLiteConstraintCheck, SQLiteConstraintCommitHook,
  20. SQLiteConstraintForeignKey, SQLiteConstraintFunction,
  21. SQLiteConstraintNotNull, SQLiteConstraintTrigger,
  22. SQLiteConstraintVtab, SQLiteConstraintRowid,
  23. SQLiteConstraintPinned, SQLiteConstraintDatatype,
  24. SQLiteBlobReadOnly, SQLiteBlobReadWrite,
  25. SQLiteOpenReadOnly, SQLiteOpenReadWrite, SQLiteOpenCreate,
  26. SQLiteOpenURI, SQLiteOpenMemory, SQLiteOpenNoMutex,
  27. SQLiteOpenFullMutex, SQLiteOpenSharedCache, SQLiteOpenPrivateCache,
  28. SQLiteOpenWal,
  29. SQLiteUtf8, SQLiteUtf16Le, SQLiteUtf16Be, SQLiteUtf16, SQLiteAny,
  30. SQLiteDeterministic,
  31. SQLiteOpInsert, SQLiteOpUpdate, SQLiteOpDelete,
  32. SQLiteAuthOk, SQLiteAuthDeny, SQLiteAuthIgnore,
  33. SQLiteAuthDelete, SQLiteAuthSelect,
  34. SQLiteTraceStmt, SQLiteTraceProfile, SQLiteTraceRow, SQLiteTraceClose,
  35. SQLiteLimitLength, SQLiteLimitSqlLength, SQLiteLimitColumn,
  36. SQLiteLimitExprDepth, SQLiteLimitCompoundSelect, SQLiteLimitVdbeOp,
  37. SQLiteLimitFunctionArg, SQLiteLimitAttached,
  38. SQLiteLimitLikePatternLength, SQLiteLimitVariableNumber,
  39. SQLiteLimitTriggerDepth, SQLiteLimitWorkerThreads,
  40. SQLiteLimitParserDepth, SQLiteLimitSchema, SQLiteLimitTriggerSteps,
  41. SQLiteStmtStatusFullscanStep, SQLiteStmtStatusSort,
  42. SQLiteStmtStatusAutoindex, SQLiteStmtStatusVmStep,
  43. SQLiteStmtStatusReprepare, SQLiteStmtStatusRun,
  44. SQLiteStmtStatusFilterMiss, SQLiteStmtStatusFilterHit,
  45. SQLiteStmtStatusMemused,
  46. SQLitePreparePersistent, SQLitePrepareNormalize, SQLitePrepareNoVtab,
  47. SQLitePrepareDontLog, SQLitePrepareFromDdl,
  48. sqlite3_open,
  49. sqlite3_open_v2,
  50. sqlite3_exec,
  51. sqlite3_close,
  52. sqlite3_close_v2,
  53. sqlite3_prepare_v2,
  54. sqlite3_prepare_v3,
  55. sqlite3_bind_int,
  56. sqlite3_bind_int64,
  57. sqlite3_bind_double,
  58. sqlite3_bind_null,
  59. sqlite3_bind_blob,
  60. sqlite3_bind_zeroblob,
  61. sqlite3_bind_text,
  62. sqlite3_bind_parameter_count,
  63. sqlite3_bind_parameter_name,
  64. sqlite3_bind_parameter_index,
  65. sqlite3_step,
  66. sqlite3_sql,
  67. sqlite3_expanded_sql,
  68. sqlite3_stmt_readonly,
  69. sqlite3_stmt_busy,
  70. sqlite3_next_stmt,
  71. sqlite3_stmt_status,
  72. sqlite3_reset,
  73. sqlite3_clear_bindings,
  74. sqlite3_column_count,
  75. sqlite3_data_count,
  76. sqlite3_column_type,
  77. sqlite3_column_bytes,
  78. sqlite3_column_int,
  79. sqlite3_column_int64,
  80. sqlite3_column_double,
  81. sqlite3_column_blob,
  82. sqlite3_column_text,
  83. sqlite3_column_name,
  84. sqlite3_column_decltype,
  85. sqlite3_finalize,
  86. sqlite3_changes,
  87. sqlite3_total_changes,
  88. sqlite3_last_insert_rowid,
  89. sqlite3_blob_open,
  90. sqlite3_blob_close,
  91. sqlite3_blob_read,
  92. sqlite3_blob_write,
  93. sqlite3_blob_bytes,
  94. sqlite3_blob_reopen,
  95. sqlite3_backup_init,
  96. sqlite3_backup_step,
  97. sqlite3_backup_finish,
  98. sqlite3_backup_remaining,
  99. sqlite3_backup_pagecount,
  100. sqlite3_create_function_v2,
  101. sqlite3_value_type,
  102. sqlite3_value_int,
  103. sqlite3_value_int64,
  104. sqlite3_value_double,
  105. sqlite3_value_text,
  106. sqlite3_value_blob,
  107. sqlite3_value_bytes,
  108. sqlite3_value_numeric_type,
  109. sqlite3_value_dup,
  110. sqlite3_value_free,
  111. sqlite3_value_pointer,
  112. sqlite3_aggregate_context,
  113. sqlite3_get_auxdata,
  114. sqlite3_set_auxdata,
  115. sqlite3_result_null,
  116. sqlite3_result_int,
  117. sqlite3_result_int64,
  118. sqlite3_result_double,
  119. sqlite3_result_text,
  120. sqlite3_result_blob,
  121. sqlite3_result_error,
  122. sqlite3_result_error_code,
  123. sqlite3_result_error_toobig,
  124. sqlite3_result_error_nomem,
  125. sqlite3_result_value,
  126. sqlite3_result_zeroblob,
  127. sqlite3_result_zeroblob64,
  128. sqlite3_result_text64,
  129. sqlite3_result_blob64,
  130. sqlite3_user_data,
  131. sqlite3_context_db_handle,
  132. sqlite3_busy_timeout,
  133. sqlite3_busy_handler,
  134. sqlite3_interrupt,
  135. sqlite3_progress_handler,
  136. sqlite3_trace_v2,
  137. sqlite3_update_hook,
  138. sqlite3_commit_hook,
  139. sqlite3_rollback_hook,
  140. sqlite3_set_authorizer,
  141. sqlite3_db_handle,
  142. sqlite3_libversion,
  143. sqlite3_libversion_number,
  144. sqlite3_sourceid,
  145. sqlite3_threadsafe,
  146. sqlite3_error_offset,
  147. sqlite3_get_autocommit,
  148. sqlite3_complete,
  149. sqlite3_limit,
  150. sqlite3_errmsg,
  151. sqlite3_errstr,
  152. sqlite3_errcode,
  153. sqlite3_extended_errcode,
  154. sqlite3_extended_result_codes,
  155. sqlite3_free,
  156. SQLiteArrayAt,
  157. SQLiteTransient;
  158. TYPE
  159. DbHandle = ADDRESS;
  160. StmtHandle = ADDRESS;
  161. BlobHandle = ADDRESS;
  162. BackupHandle = ADDRESS;
  163. ContextHandle = ADDRESS;
  164. ValueHandle = ADDRESS;
  165. CONST
  166. SQLiteOk = 0;
  167. SQLiteError = 1;
  168. SQLiteInternal = 2;
  169. SQLitePerm = 3;
  170. SQLiteAbort = 4;
  171. SQLiteBusy = 5;
  172. SQLiteLocked = 6;
  173. SQLiteNoMem = 7;
  174. SQLiteReadOnly = 8;
  175. SQLiteInterrupt = 9;
  176. SQLiteIoErr = 10;
  177. SQLiteCorrupt = 11;
  178. SQLiteNotFound = 12;
  179. SQLiteFull = 13;
  180. SQLiteCantOpen = 14;
  181. SQLiteProtocol = 15;
  182. SQLiteEmpty = 16;
  183. SQLiteSchema = 17;
  184. SQLiteTooBig = 18;
  185. SQLiteConstraint = 19;
  186. SQLiteMismatch = 20;
  187. SQLiteMisuse = 21;
  188. SQLiteNoLfs = 22;
  189. SQLiteAuth = 23;
  190. SQLiteFormat = 24;
  191. SQLiteRange = 25;
  192. SQLiteNotADb = 26;
  193. SQLiteNotice = 27;
  194. SQLiteWarning = 28;
  195. SQLiteRow = 100;
  196. SQLiteDone = 101;
  197. SQLiteInteger = 1;
  198. SQLiteFloat = 2;
  199. SQLiteText = 3;
  200. SQLiteBlob = 4;
  201. SQLiteNull = 5;
  202. SQLiteConstraintCheck = 275;
  203. SQLiteConstraintCommitHook = 531;
  204. SQLiteConstraintForeignKey = 787;
  205. SQLiteConstraintFunction = 1043;
  206. SQLiteConstraintNotNull = 1299;
  207. SQLiteConstraintPrimaryKey = 1555;
  208. SQLiteConstraintTrigger = 1811;
  209. SQLiteConstraintUnique = 2067;
  210. SQLiteConstraintVtab = 2323;
  211. SQLiteConstraintRowid = 2579;
  212. SQLiteConstraintPinned = 2835;
  213. SQLiteConstraintDatatype = 3091;
  214. SQLiteBlobReadOnly = 0;
  215. SQLiteBlobReadWrite = 1;
  216. SQLiteOpenReadOnly = 1;
  217. SQLiteOpenReadWrite = 2;
  218. SQLiteOpenCreate = 4;
  219. SQLiteOpenURI = 64;
  220. SQLiteOpenMemory = 128;
  221. SQLiteOpenNoMutex = 32768;
  222. SQLiteOpenFullMutex = 65536;
  223. SQLiteOpenSharedCache = 131072;
  224. SQLiteOpenPrivateCache = 262144;
  225. SQLiteOpenWal = 524288;
  226. SQLiteUtf8 = 1;
  227. SQLiteUtf16Le = 2;
  228. SQLiteUtf16Be = 3;
  229. SQLiteUtf16 = 4;
  230. SQLiteAny = 5;
  231. SQLiteDeterministic = 2048;
  232. SQLiteOpDelete = 9;
  233. SQLiteOpInsert = 18;
  234. SQLiteOpUpdate = 23;
  235. SQLiteAuthOk = 0;
  236. SQLiteAuthDeny = 1;
  237. SQLiteAuthIgnore = 2;
  238. SQLiteAuthDelete = 9;
  239. SQLiteAuthSelect = 21;
  240. SQLiteTraceStmt = 1;
  241. SQLiteTraceProfile = 2;
  242. SQLiteTraceRow = 4;
  243. SQLiteTraceClose = 8;
  244. SQLiteLimitLength = 0;
  245. SQLiteLimitSqlLength = 1;
  246. SQLiteLimitColumn = 2;
  247. SQLiteLimitExprDepth = 3;
  248. SQLiteLimitCompoundSelect = 4;
  249. SQLiteLimitVdbeOp = 5;
  250. SQLiteLimitFunctionArg = 6;
  251. SQLiteLimitAttached = 7;
  252. SQLiteLimitLikePatternLength = 8;
  253. SQLiteLimitVariableNumber = 9;
  254. SQLiteLimitTriggerDepth = 10;
  255. SQLiteLimitWorkerThreads = 11;
  256. SQLiteLimitParserDepth = 12;
  257. SQLiteLimitSchema = 13;
  258. SQLiteLimitTriggerSteps = 14;
  259. SQLiteStmtStatusFullscanStep = 1;
  260. SQLiteStmtStatusSort = 2;
  261. SQLiteStmtStatusAutoindex = 3;
  262. SQLiteStmtStatusVmStep = 4;
  263. SQLiteStmtStatusReprepare = 5;
  264. SQLiteStmtStatusRun = 6;
  265. SQLiteStmtStatusFilterMiss = 7;
  266. SQLiteStmtStatusFilterHit = 8;
  267. SQLiteStmtStatusMemused = 99;
  268. SQLitePreparePersistent = 1;
  269. SQLitePrepareNormalize = 2;
  270. SQLitePrepareNoVtab = 4;
  271. SQLitePrepareDontLog = 16;
  272. SQLitePrepareFromDdl = 32;
  273. PROCEDURE sqlite3_open (filename : ARRAY OF CHAR;
  274. VAR db : DbHandle) : INTEGER;
  275. PROCEDURE sqlite3_open_v2 (filename : ARRAY OF CHAR;
  276. VAR db : DbHandle;
  277. flags : INTEGER;
  278. vfs : CString) : INTEGER;
  279. PROCEDURE sqlite3_exec (db : DbHandle;
  280. sql : ARRAY OF CHAR;
  281. callback, arg : ADDRESS;
  282. VAR errmsg : ADDRESS) : INTEGER;
  283. PROCEDURE sqlite3_close (db : DbHandle) : INTEGER;
  284. PROCEDURE sqlite3_close_v2 (db : DbHandle) : INTEGER;
  285. PROCEDURE sqlite3_prepare_v2 (db : DbHandle;
  286. sql : ARRAY OF CHAR;
  287. nBytes : INTEGER;
  288. VAR stmt : StmtHandle;
  289. tail : ADDRESS) : INTEGER;
  290. PROCEDURE sqlite3_prepare_v3 (db : DbHandle;
  291. sql : ARRAY OF CHAR;
  292. nBytes : INTEGER;
  293. prepFlags : CARDINAL;
  294. VAR stmt : StmtHandle;
  295. VAR tail : ADDRESS) : INTEGER;
  296. PROCEDURE sqlite3_bind_int (stmt : StmtHandle;
  297. idx : INTEGER;
  298. value : INTEGER) : INTEGER;
  299. PROCEDURE sqlite3_bind_int64 (stmt : StmtHandle;
  300. idx : INTEGER;
  301. value : LONGINT) : INTEGER;
  302. PROCEDURE sqlite3_bind_double (stmt : StmtHandle;
  303. idx : INTEGER;
  304. value : REAL) : INTEGER;
  305. PROCEDURE sqlite3_bind_null (stmt : StmtHandle;
  306. idx : INTEGER) : INTEGER;
  307. PROCEDURE sqlite3_bind_blob (stmt : StmtHandle;
  308. idx : INTEGER;
  309. data : ADDRESS;
  310. nBytes : INTEGER;
  311. destructor : ADDRESS) : INTEGER;
  312. PROCEDURE sqlite3_bind_zeroblob (stmt : StmtHandle;
  313. idx : INTEGER;
  314. nBytes : INTEGER) : INTEGER;
  315. PROCEDURE sqlite3_bind_text (stmt : StmtHandle;
  316. idx : INTEGER;
  317. value : ARRAY OF CHAR;
  318. nBytes : INTEGER;
  319. destructor : ADDRESS) : INTEGER;
  320. PROCEDURE sqlite3_bind_parameter_count (stmt : StmtHandle) : INTEGER;
  321. PROCEDURE sqlite3_bind_parameter_name (stmt : StmtHandle;
  322. idx : INTEGER) : CString;
  323. PROCEDURE sqlite3_bind_parameter_index (stmt : StmtHandle;
  324. name : ARRAY OF CHAR) : INTEGER;
  325. PROCEDURE sqlite3_step (stmt : StmtHandle) : INTEGER;
  326. PROCEDURE sqlite3_sql (stmt : StmtHandle) : CString;
  327. PROCEDURE sqlite3_expanded_sql (stmt : StmtHandle) : CString;
  328. PROCEDURE sqlite3_stmt_readonly (stmt : StmtHandle) : INTEGER;
  329. PROCEDURE sqlite3_stmt_busy (stmt : StmtHandle) : INTEGER;
  330. PROCEDURE sqlite3_next_stmt (db : DbHandle; stmt : StmtHandle) : StmtHandle;
  331. PROCEDURE sqlite3_stmt_status (stmt : StmtHandle;
  332. op : INTEGER;
  333. resetFlag : INTEGER) : INTEGER;
  334. PROCEDURE sqlite3_reset (stmt : StmtHandle) : INTEGER;
  335. PROCEDURE sqlite3_clear_bindings (stmt : StmtHandle) : INTEGER;
  336. PROCEDURE sqlite3_column_count (stmt : StmtHandle) : INTEGER;
  337. PROCEDURE sqlite3_data_count (stmt : StmtHandle) : INTEGER;
  338. PROCEDURE sqlite3_column_type (stmt : StmtHandle;
  339. col : INTEGER) : INTEGER;
  340. PROCEDURE sqlite3_column_bytes (stmt : StmtHandle;
  341. col : INTEGER) : INTEGER;
  342. PROCEDURE sqlite3_column_int (stmt : StmtHandle;
  343. col : INTEGER) : INTEGER;
  344. PROCEDURE sqlite3_column_int64 (stmt : StmtHandle;
  345. col : INTEGER) : LONGINT;
  346. PROCEDURE sqlite3_column_double (stmt : StmtHandle;
  347. col : INTEGER) : REAL;
  348. PROCEDURE sqlite3_column_blob (stmt : StmtHandle;
  349. col : INTEGER) : ADDRESS;
  350. PROCEDURE sqlite3_column_text (stmt : StmtHandle;
  351. col : INTEGER) : CString;
  352. PROCEDURE sqlite3_column_name (stmt : StmtHandle;
  353. col : INTEGER) : CString;
  354. PROCEDURE sqlite3_column_decltype (stmt : StmtHandle;
  355. col : INTEGER) : CString;
  356. PROCEDURE sqlite3_finalize (stmt : StmtHandle) : INTEGER;
  357. PROCEDURE sqlite3_changes (db : DbHandle) : INTEGER;
  358. PROCEDURE sqlite3_total_changes (db : DbHandle) : INTEGER;
  359. PROCEDURE sqlite3_last_insert_rowid (db : DbHandle) : LONGINT;
  360. PROCEDURE sqlite3_blob_open (db : DbHandle;
  361. dbName, tableName, columnName : ARRAY OF CHAR;
  362. rowid : LONGINT;
  363. flags : INTEGER;
  364. VAR blob : BlobHandle) : INTEGER;
  365. PROCEDURE sqlite3_blob_close (blob : BlobHandle) : INTEGER;
  366. PROCEDURE sqlite3_blob_read (blob : BlobHandle;
  367. data : ADDRESS;
  368. nBytes : INTEGER;
  369. offset : INTEGER) : INTEGER;
  370. PROCEDURE sqlite3_blob_write (blob : BlobHandle;
  371. data : ADDRESS;
  372. nBytes : INTEGER;
  373. offset : INTEGER) : INTEGER;
  374. PROCEDURE sqlite3_blob_bytes (blob : BlobHandle) : INTEGER;
  375. PROCEDURE sqlite3_blob_reopen (blob : BlobHandle;
  376. rowid : LONGINT) : INTEGER;
  377. PROCEDURE sqlite3_backup_init (dst : DbHandle;
  378. dstName : ARRAY OF CHAR;
  379. src : DbHandle;
  380. srcName : ARRAY OF CHAR) : BackupHandle;
  381. PROCEDURE sqlite3_backup_step (backup : BackupHandle; pages : INTEGER) : INTEGER;
  382. PROCEDURE sqlite3_backup_finish (backup : BackupHandle) : INTEGER;
  383. PROCEDURE sqlite3_backup_remaining (backup : BackupHandle) : INTEGER;
  384. PROCEDURE sqlite3_backup_pagecount (backup : BackupHandle) : INTEGER;
  385. (* User-defined scalar functions. xFunc receives
  386. (sqlite3_context*, int argc, sqlite3_value** argv); use
  387. SQLiteArrayAt(argv, i) to reach each value. *)
  388. PROCEDURE sqlite3_create_function_v2 (db : DbHandle;
  389. name : ARRAY OF CHAR;
  390. nArgs : INTEGER;
  391. textRep : INTEGER;
  392. userData : ADDRESS;
  393. xFunc, xStep, xFinal : ADDRESS;
  394. xDestroy : ADDRESS) : INTEGER;
  395. PROCEDURE sqlite3_value_type (value : ValueHandle) : INTEGER;
  396. PROCEDURE sqlite3_value_int (value : ValueHandle) : INTEGER;
  397. PROCEDURE sqlite3_value_int64 (value : ValueHandle) : LONGINT;
  398. PROCEDURE sqlite3_value_double (value : ValueHandle) : REAL;
  399. PROCEDURE sqlite3_value_text (value : ValueHandle) : CString;
  400. PROCEDURE sqlite3_value_blob (value : ValueHandle) : ADDRESS;
  401. PROCEDURE sqlite3_value_bytes (value : ValueHandle) : INTEGER;
  402. PROCEDURE sqlite3_value_numeric_type (value : ValueHandle) : INTEGER;
  403. PROCEDURE sqlite3_value_dup (value : ValueHandle) : ValueHandle;
  404. PROCEDURE sqlite3_value_free (value : ValueHandle);
  405. PROCEDURE sqlite3_value_pointer (value : ValueHandle;
  406. typeName : CString) : ADDRESS;
  407. PROCEDURE sqlite3_aggregate_context (ctx : ContextHandle;
  408. nBytes : INTEGER) : ADDRESS;
  409. PROCEDURE sqlite3_get_auxdata (ctx : ContextHandle;
  410. idx : INTEGER) : ADDRESS;
  411. PROCEDURE sqlite3_set_auxdata (ctx : ContextHandle;
  412. idx : INTEGER;
  413. data : ADDRESS;
  414. destructor : ADDRESS);
  415. PROCEDURE sqlite3_result_null (ctx : ContextHandle);
  416. PROCEDURE sqlite3_result_int (ctx : ContextHandle; value : INTEGER);
  417. PROCEDURE sqlite3_result_int64 (ctx : ContextHandle; value : LONGINT);
  418. PROCEDURE sqlite3_result_double (ctx : ContextHandle; value : REAL);
  419. PROCEDURE sqlite3_result_text (ctx : ContextHandle;
  420. value : ARRAY OF CHAR;
  421. nBytes : INTEGER;
  422. destructor : ADDRESS);
  423. PROCEDURE sqlite3_result_blob (ctx : ContextHandle;
  424. data : ADDRESS;
  425. nBytes : INTEGER;
  426. destructor : ADDRESS);
  427. PROCEDURE sqlite3_result_error (ctx : ContextHandle;
  428. msg : ARRAY OF CHAR;
  429. nBytes : INTEGER);
  430. PROCEDURE sqlite3_result_error_code (ctx : ContextHandle; code : INTEGER);
  431. PROCEDURE sqlite3_result_error_toobig (ctx : ContextHandle);
  432. PROCEDURE sqlite3_result_error_nomem (ctx : ContextHandle);
  433. PROCEDURE sqlite3_result_value (ctx : ContextHandle; value : ValueHandle);
  434. PROCEDURE sqlite3_result_zeroblob (ctx : ContextHandle; nBytes : INTEGER);
  435. PROCEDURE sqlite3_result_zeroblob64 (ctx : ContextHandle;
  436. nBytes : LONGCARD) : INTEGER;
  437. PROCEDURE sqlite3_result_text64 (ctx : ContextHandle;
  438. value : ARRAY OF CHAR;
  439. nBytes : LONGCARD;
  440. destructor : ADDRESS;
  441. encoding : INTEGER);
  442. PROCEDURE sqlite3_result_blob64 (ctx : ContextHandle;
  443. data : ADDRESS;
  444. nBytes : LONGCARD;
  445. destructor : ADDRESS);
  446. PROCEDURE sqlite3_user_data (ctx : ContextHandle) : ADDRESS;
  447. PROCEDURE sqlite3_context_db_handle (ctx : ContextHandle) : DbHandle;
  448. (* Connection hooks. Hooks must be top-level V3 procedures. *)
  449. PROCEDURE sqlite3_busy_timeout (db : DbHandle; milliseconds : INTEGER) : INTEGER;
  450. PROCEDURE sqlite3_busy_handler (db : DbHandle;
  451. callback, arg : ADDRESS) : INTEGER;
  452. PROCEDURE sqlite3_interrupt (db : DbHandle);
  453. PROCEDURE sqlite3_progress_handler (db : DbHandle;
  454. nOps : INTEGER;
  455. callback, arg : ADDRESS);
  456. PROCEDURE sqlite3_trace_v2 (db : DbHandle;
  457. mask : CARDINAL;
  458. callback, arg : ADDRESS) : INTEGER;
  459. PROCEDURE sqlite3_update_hook (db : DbHandle;
  460. callback, arg : ADDRESS) : ADDRESS;
  461. PROCEDURE sqlite3_commit_hook (db : DbHandle;
  462. callback, arg : ADDRESS) : ADDRESS;
  463. PROCEDURE sqlite3_rollback_hook (db : DbHandle;
  464. callback, arg : ADDRESS);
  465. PROCEDURE sqlite3_set_authorizer (db : DbHandle;
  466. callback, arg : ADDRESS) : INTEGER;
  467. PROCEDURE sqlite3_db_handle (stmt : StmtHandle) : DbHandle;
  468. PROCEDURE sqlite3_libversion () : CString;
  469. PROCEDURE sqlite3_libversion_number () : INTEGER;
  470. PROCEDURE sqlite3_sourceid () : CString;
  471. PROCEDURE sqlite3_threadsafe () : INTEGER;
  472. PROCEDURE sqlite3_error_offset (db : DbHandle) : INTEGER;
  473. PROCEDURE sqlite3_get_autocommit (db : DbHandle) : INTEGER;
  474. PROCEDURE sqlite3_complete (sql : ARRAY OF CHAR) : INTEGER;
  475. PROCEDURE sqlite3_limit (db : DbHandle;
  476. id : INTEGER;
  477. newVal : INTEGER) : INTEGER;
  478. PROCEDURE sqlite3_errmsg (db : DbHandle) : CString;
  479. PROCEDURE sqlite3_errstr (code : INTEGER) : CString;
  480. PROCEDURE sqlite3_errcode (db : DbHandle) : INTEGER;
  481. PROCEDURE sqlite3_extended_errcode (db : DbHandle) : INTEGER;
  482. PROCEDURE sqlite3_extended_result_codes (db : DbHandle;
  483. onoff : INTEGER) : INTEGER;
  484. PROCEDURE sqlite3_free (p : ADDRESS);
  485. PROCEDURE SQLiteArrayAt (array : ADDRESS; idx : INTEGER) : ADDRESS;
  486. EXTERNAL "m2_sqlite_array_at";
  487. (* Index a C array of pointers, such as char **argv or sqlite3_value **. *)
  488. PROCEDURE SQLiteTransient () : ADDRESS;
  489. EXTERNAL "m2_sqlite_transient";
  490. (* The SQLITE_TRANSIENT destructor sentinel: SQLite copies bound data. *)
  491. END SQLite.