2
0

sqlite3ext.pp 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321
  1. {
  2. This file is part of the Free Pascal Classes Library (FCL).
  3. Copyright (C) 2018 Silvio Clecio (silvioprog) member of
  4. the Free Pascal development team.
  5. This unit file defines the SQLite interface for use by
  6. shared libraries that want to be imported as extensions
  7. into a SQLite instance.
  8. See the file COPYING.FPC, included in this distribution,
  9. for details about the copyright.
  10. This program is distributed in the hope that it will be useful,
  11. but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  13. }
  14. {$IFNDEF FPC_DOTTEDUNITS}
  15. unit SQLite3Ext;
  16. {$ENDIF FPC_DOTTEDUNITS}
  17. {$mode objfpc}{$h+}
  18. interface
  19. {$IFDEF FPC_DOTTEDUNITS}
  20. uses
  21. System.CTypes,
  22. Api.Sqlite3;
  23. {$ELSE FPC_DOTTEDUNITS}
  24. uses
  25. ctypes,
  26. sqlite3;
  27. {$ENDIF FPC_DOTTEDUNITS}
  28. {$packrecords c}
  29. type
  30. Ppcchar = ^pcchar;
  31. PPpcchar = ^Ppcchar;
  32. va_list = type Pointer;
  33. xCallback = function (_para1:cunsigned; _para2:pointer; _para3:pointer; _para4:pointer):cint;cdecl;
  34. Psqlite3_api_routines = ^sqlite3_api_routines;
  35. (*
  36. ** The following structure holds pointers to all of the SQLite API
  37. ** routines.
  38. **
  39. ** WARNING: In order to maintain backwards compatibility, add new
  40. ** interfaces to the end of this structure only. If you insert new
  41. ** interfaces in the middle of this structure, then older different
  42. ** versions of SQLite will not be able to load each other's shared
  43. ** libraries!
  44. *)
  45. sqlite3_api_routines = record
  46. aggregate_context : function (_para1:Psqlite3_context; nBytes:cint):pointer;cdecl;
  47. aggregate_count : function (_para1:Psqlite3_context):cint;cdecl;
  48. bind_blob : function (_para1:Psqlite3_stmt; _para2:cint; _para3:pointer; n:cint; _para5:sqlite3_destructor_type):cint;cdecl;
  49. bind_double : function (_para1:Psqlite3_stmt; _para2:cint; _para3:double):cint;cdecl;
  50. bind_int : function (_para1:Psqlite3_stmt; _para2:cint; _para3:cint):cint;cdecl;
  51. bind_int64 : function (_para1:Psqlite3_stmt; _para2:cint; _para3:sqlite_int64):cint;cdecl;
  52. bind_null : function (_para1:Psqlite3_stmt; _para2:cint):cint;cdecl;
  53. bind_parameter_count : function (_para1:Psqlite3_stmt):cint;cdecl;
  54. bind_parameter_index : function (_para1:Psqlite3_stmt; zName:pcchar):cint;cdecl;
  55. bind_parameter_name : function (_para1:Psqlite3_stmt; _para2:cint):pcchar;cdecl;
  56. bind_text : function (_para1:Psqlite3_stmt; _para2:cint; _para3:pcchar; n:cint; _para5:sqlite3_destructor_type):cint;cdecl;
  57. bind_text16 : function (_para1:Psqlite3_stmt; _para2:cint; _para3:pointer; _para4:cint; _para5:sqlite3_destructor_type):cint;cdecl;
  58. bind_value : function (_para1:Psqlite3_stmt; _para2:cint; _para3:Psqlite3_value):cint;cdecl;
  59. busy_handler : function (_para1:Psqlite3; _para2:busyhandler_callback; _para3:pointer):cint;cdecl;
  60. busy_timeout : function (_para1:Psqlite3; ms:cint):cint;cdecl;
  61. changes : function (_para1:Psqlite3):cint;cdecl;
  62. close : function (_para1:Psqlite3):cint;cdecl;
  63. collation_needed : function (_para1:Psqlite3; _para2:pointer; _para3:collation_needed_cb):cint;cdecl;
  64. collation_needed16 : function (_para1:Psqlite3; _para2:pointer; _para3:collation_needed_cb):cint;cdecl;
  65. column_blob : function (_para1:Psqlite3_stmt; iCol:cint):pointer;cdecl;
  66. column_bytes : function (_para1:Psqlite3_stmt; iCol:cint):cint;cdecl;
  67. column_bytes16 : function (_para1:Psqlite3_stmt; iCol:cint):cint;cdecl;
  68. column_count : function (pStmt:Psqlite3_stmt):cint;cdecl;
  69. column_database_name : function (_para1:Psqlite3_stmt; _para2:cint):pcchar;cdecl;
  70. column_database_name16 : function (_para1:Psqlite3_stmt; _para2:cint):pointer;cdecl;
  71. column_decltype : function (_para1:Psqlite3_stmt; i:cint):pcchar;cdecl;
  72. column_decltype16 : function (_para1:Psqlite3_stmt; _para2:cint):pointer;cdecl;
  73. column_double : function (_para1:Psqlite3_stmt; iCol:cint):double;cdecl;
  74. column_int : function (_para1:Psqlite3_stmt; iCol:cint):cint;cdecl;
  75. column_int64 : function (_para1:Psqlite3_stmt; iCol:cint):sqlite_int64;cdecl;
  76. column_name : function (_para1:Psqlite3_stmt; _para2:cint):pcchar;cdecl;
  77. column_name16 : function (_para1:Psqlite3_stmt; _para2:cint):pointer;cdecl;
  78. column_origin_name : function (_para1:Psqlite3_stmt; _para2:cint):pcchar;cdecl;
  79. column_origin_name16 : function (_para1:Psqlite3_stmt; _para2:cint):pointer;cdecl;
  80. column_table_name : function (_para1:Psqlite3_stmt; _para2:cint):pcchar;cdecl;
  81. column_table_name16 : function (_para1:Psqlite3_stmt; _para2:cint):pointer;cdecl;
  82. column_text : function (_para1:Psqlite3_stmt; iCol:cint):pcuchar;cdecl;
  83. column_text16 : function (_para1:Psqlite3_stmt; iCol:cint):pointer;cdecl;
  84. column_type : function (_para1:Psqlite3_stmt; iCol:cint):cint;cdecl;
  85. column_value : function (_para1:Psqlite3_stmt; iCol:cint):Psqlite3_value;cdecl;
  86. commit_hook : function (_para1:Psqlite3; _para2:commit_callback; _para3:pointer):pointer;cdecl;
  87. complete : function (sql:pcchar):cint;cdecl;
  88. complete16 : function (sql:pointer):cint;cdecl;
  89. create_collation : function (_para1:Psqlite3; _para2:pcchar; _para3:cint; _para4:pointer; _para5:xCompare):cint;cdecl;
  90. create_collation16 : function (_para1:Psqlite3; _para2:pointer; _para3:cint; _para4:pointer; _para5:xCompare):cint;cdecl;
  91. create_function : function (_para1:Psqlite3; _para2:pcchar; _para3:cint; _para4:cint; _para5:pointer;
  92. xFunc:xFunc; xStep:xStep; xFinal:xFinal):cint;cdecl;
  93. create_function16 : function (_para1:Psqlite3; _para2:pointer; _para3:cint; _para4:cint; _para5:pointer;
  94. xFunc:xFunc; xStep:xStep; xFinal:xFinal):cint;cdecl;
  95. create_module : function (_para1:Psqlite3; _para2:pcchar; _para3:Psqlite3_module; _para4:pointer):cint;cdecl;
  96. data_count : function (pStmt:Psqlite3_stmt):cint;cdecl;
  97. db_handle : function (_para1:Psqlite3_stmt):Psqlite3;cdecl;
  98. declare_vtab : function (_para1:Psqlite3; _para2:pcchar):cint;cdecl;
  99. enable_shared_cache : function (_para1:cint):cint;cdecl;
  100. errcode : function (db:Psqlite3):cint;cdecl;
  101. errmsg : function (_para1:Psqlite3):pcchar;cdecl;
  102. errmsg16 : function (_para1:Psqlite3):pointer;cdecl;
  103. exec : function (_para1:Psqlite3; _para2:pcchar; _para3:sqlite3_callback; _para4:pointer; _para5:Ppcchar):cint;cdecl;
  104. expired : function (_para1:Psqlite3_stmt):cint;cdecl;
  105. finalize : function (pStmt:Psqlite3_stmt):cint;cdecl;
  106. free : procedure;cdecl;
  107. free_table : procedure (result:Ppcchar);cdecl;
  108. get_autocommit : function (_para1:Psqlite3):cint;cdecl;
  109. get_auxdata : function (_para1:Psqlite3_context; _para2:cint):pointer;cdecl;
  110. get_table : function (_para1:Psqlite3; _para2:pcchar; _para3:PPpcchar; _para4:pcint; _para5:pcint;
  111. _para6:Ppcchar):cint;cdecl;
  112. global_recover : function :cint;cdecl;
  113. interruptx : procedure (_para1:Psqlite3);cdecl;
  114. last_insert_rowid : function (_para1:Psqlite3):sqlite_int64;cdecl;
  115. libversion : function :pcchar;cdecl;
  116. libversion_number : function :cint;cdecl;
  117. malloc : function (_para1:cint):pointer;cdecl;
  118. mprintf : function (_para1:pcchar; args:array of const):pcchar;cdecl;
  119. open : function (_para1:pcchar; _para2:PPsqlite3):cint;cdecl;
  120. open16 : function (_para1:pointer; _para2:PPsqlite3):cint;cdecl;
  121. prepare : function (_para1:Psqlite3; _para2:pcchar; _para3:cint; _para4:PPsqlite3_stmt; _para5:Ppcchar):cint;cdecl;
  122. prepare16 : function (_para1:Psqlite3; _para2:pointer; _para3:cint; _para4:PPsqlite3_stmt; _para5:Ppointer):cint;cdecl;
  123. profile : function (_para1:Psqlite3; _para2:xProfile; _para3:pointer):pointer;cdecl;
  124. progress_handler : procedure (_para1:Psqlite3; _para2:cint; _para3:commit_callback; _para4:pointer);cdecl;
  125. realloc : function:pointer;cdecl;
  126. reset : function (pStmt:Psqlite3_stmt):cint;cdecl;
  127. result_blob : procedure (_para1:Psqlite3_context; _para2:pointer; _para3:cint; _para4:sqlite3_destructor_type);cdecl;
  128. result_double : procedure (_para1:Psqlite3_context; _para2:double);cdecl;
  129. result_error : procedure (_para1:Psqlite3_context; _para2:pcchar; _para3:cint);cdecl;
  130. result_error16 : procedure (_para1:Psqlite3_context; _para2:pointer; _para3:cint);cdecl;
  131. result_int : procedure (_para1:Psqlite3_context; _para2:cint);cdecl;
  132. result_int64 : procedure (_para1:Psqlite3_context; _para2:sqlite_int64);cdecl;
  133. result_null : procedure (_para1:Psqlite3_context);cdecl;
  134. result_text : procedure (_para1:Psqlite3_context; _para2:pcchar; _para3:cint; _para4:sqlite3_destructor_type);cdecl;
  135. result_text16 : procedure (_para1:Psqlite3_context; _para2:pointer; _para3:cint; _para4:sqlite3_destructor_type);cdecl;
  136. result_text16be : procedure (_para1:Psqlite3_context; _para2:pointer; _para3:cint; _para4:sqlite3_destructor_type);cdecl;
  137. result_text16le : procedure (_para1:Psqlite3_context; _para2:pointer; _para3:cint; _para4:sqlite3_destructor_type);cdecl;
  138. result_value : procedure (_para1:Psqlite3_context; _para2:Psqlite3_value);cdecl;
  139. rollback_hook : function (_para1:Psqlite3; _para2:sqlite3_destructor_type; _para3:pointer):pointer;cdecl;
  140. set_authorizer : function (_para1:Psqlite3; _para2:xAuth; _para3:pointer):cint;cdecl;
  141. set_auxdata : procedure (_para1:Psqlite3_context; _para2:cint; _para3:pointer; _para4:sqlite3_destructor_type);cdecl;
  142. xsnprintf : function (_para1:cint; _para2:pcchar; _para3:pcchar; args:array of const):pcchar;cdecl;
  143. step : function (_para1:Psqlite3_stmt):cint;cdecl;
  144. table_column_metadata : function (_para1:Psqlite3; _para2:pcchar; _para3:pcchar; _para4:pcchar; _para5:Ppcchar;
  145. _para6:Ppcchar; _para7:pcint; _para8:pcint; _para9:pcint):cint;cdecl;
  146. thread_cleanup : procedure ;cdecl;
  147. total_changes : function (_para1:Psqlite3):cint;cdecl;
  148. trace : function (_para1:Psqlite3; xTrace:xTrace; _para3:pointer):pointer;cdecl;
  149. transfer_bindings : function (_para1:Psqlite3_stmt; _para2:Psqlite3_stmt):cint;cdecl;
  150. update_hook : function (_para1:Psqlite3; _para2:update_callback; _para3:pointer):pointer;cdecl;
  151. user_data : function (_para1:Psqlite3_context):pointer;cdecl;
  152. value_blob : function (_para1:Psqlite3_value):pointer;cdecl;
  153. value_bytes : function (_para1:Psqlite3_value):cint;cdecl;
  154. value_bytes16 : function (_para1:Psqlite3_value):cint;cdecl;
  155. value_double : function (_para1:Psqlite3_value):double;cdecl;
  156. value_int : function (_para1:Psqlite3_value):cint;cdecl;
  157. value_int64 : function (_para1:Psqlite3_value):sqlite_int64;cdecl;
  158. value_numeric_type : function (_para1:Psqlite3_value):cint;cdecl;
  159. value_text : function (_para1:Psqlite3_value):pcuchar;cdecl;
  160. value_text16 : function (_para1:Psqlite3_value):pointer;cdecl;
  161. value_text16be : function (_para1:Psqlite3_value):pointer;cdecl;
  162. value_text16le : function (_para1:Psqlite3_value):pointer;cdecl;
  163. value_type : function (_para1:Psqlite3_value):cint;cdecl;
  164. vmprintf : function (_para1:pcchar; _para2:va_list):pcchar;cdecl;
  165. overload_function : function (_para1:Psqlite3; zFuncName:pcchar; nArg:cint):cint;cdecl;
  166. prepare_v2 : function (_para1:Psqlite3; _para2:pcchar; _para3:cint; _para4:PPsqlite3_stmt; _para5:Ppcchar):cint;cdecl;
  167. prepare16_v2 : function (_para1:Psqlite3; _para2:pointer; _para3:cint; _para4:PPsqlite3_stmt; _para5:Ppointer):cint;cdecl;
  168. clear_bindings : function (_para1:Psqlite3_stmt):cint;cdecl;
  169. create_module_v2 : function (_para1:Psqlite3; _para2:pcchar; _para3:Psqlite3_module; _para4:pointer; xDestroy:sqlite3_destructor_type):cint;cdecl;
  170. bind_zeroblob : function (_para1:Psqlite3_stmt; _para2:cint; _para3:cint):cint;cdecl;
  171. blob_bytes : function (_para1:Psqlite3_blob):cint;cdecl;
  172. blob_close : function (_para1:Psqlite3_blob):cint;cdecl;
  173. blob_open : function (_para1:Psqlite3; _para2:pcchar; _para3:pcchar; _para4:pcchar; _para5:sqlite3_int64;
  174. _para6:cint; _para7:PPsqlite3_blob):cint;cdecl;
  175. blob_read : function (_para1:Psqlite3_blob; _para2:pointer; _para3:cint; _para4:cint):cint;cdecl;
  176. blob_write : function (_para1:Psqlite3_blob; _para2:pointer; _para3:cint; _para4:cint):cint;cdecl;
  177. create_collation_v2 : function (_para1:Psqlite3; _para2:pcchar; _para3:cint; _para4:pointer; _para5:xCompare;
  178. _para6:sqlite3_destructor_type):cint;cdecl;
  179. file_control : function (_para1:Psqlite3; _para2:pcchar; _para3:cint; _para4:pointer):cint;cdecl;
  180. memory_highwater : function (_para1:cint):sqlite3_int64;cdecl;
  181. memory_used : function :sqlite3_int64;cdecl;
  182. mutex_alloc : function (_para1:cint):Psqlite3_mutex;cdecl;
  183. mutex_enter : procedure (_para1:Psqlite3_mutex);cdecl;
  184. mutex_free : procedure (_para1:Psqlite3_mutex);cdecl;
  185. mutex_leave : procedure (_para1:Psqlite3_mutex);cdecl;
  186. mutex_try : function (_para1:Psqlite3_mutex):cint;cdecl;
  187. open_v2 : function (_para1:pcchar; _para2:PPsqlite3; _para3:cint; _para4:pcchar):cint;cdecl;
  188. release_memory : function (_para1:cint):cint;cdecl;
  189. result_error_nomem : procedure (_para1:Psqlite3_context);cdecl;
  190. result_error_toobig : procedure (_para1:Psqlite3_context);cdecl;
  191. sleep : function (_para1:cint):cint;cdecl;
  192. soft_heap_limit : procedure (_para1:cint);cdecl;
  193. vfs_find : function (_para1:pcchar):Psqlite3_vfs;cdecl;
  194. vfs_register : function (_para1:Psqlite3_vfs; _para2:cint):cint;cdecl;
  195. vfs_unregister : function (_para1:Psqlite3_vfs):cint;cdecl;
  196. xthreadsafe : function :cint;cdecl;
  197. result_zeroblob : procedure (_para1:Psqlite3_context; _para2:cint);cdecl;
  198. result_error_code : procedure (_para1:Psqlite3_context; _para2:cint);cdecl;
  199. test_control : function (_para1:cint; args:array of const):cint;cdecl;
  200. randomness : procedure (_para1:cint; _para2:pointer);cdecl;
  201. context_db_handle : function (_para1:Psqlite3_context):Psqlite3;cdecl;
  202. extended_result_codes : function (_para1:Psqlite3; _para2:cint):cint;cdecl;
  203. limit : function (_para1:Psqlite3; _para2:cint; _para3:cint):cint;cdecl;
  204. next_stmt : function (_para1:Psqlite3; _para2:Psqlite3_stmt):Psqlite3_stmt;cdecl;
  205. sql : function (_para1:Psqlite3_stmt):pcchar;cdecl;
  206. status : function (_para1:cint; _para2:pcint; _para3:pcint; _para4:cint):cint;cdecl;
  207. backup_finish : function (_para1:Psqlite3backup):cint;cdecl;
  208. backup_init : function (_para1:Psqlite3; _para2:pcchar; _para3:Psqlite3; _para4:pcchar):Psqlite3backup;cdecl;
  209. backup_pagecount : function (_para1:Psqlite3backup):cint;cdecl;
  210. backup_remaining : function (_para1:Psqlite3backup):cint;cdecl;
  211. backup_step : function (_para1:Psqlite3backup; _para2:cint):cint;cdecl;
  212. compileoption_get : function (_para1:cint):pcchar;cdecl;
  213. compileoption_used : function (_para1:pcchar):cint;cdecl;
  214. create_function_v2 : function (_para1:Psqlite3; _para2:pcchar; _para3:cint; _para4:cint; _para5:pointer;
  215. xFunc:xFunc; xStep:xStep; xFinal:xFinal; xDestroy:sqlite3_destructor_type):cint;cdecl;
  216. db_config : function (_para1:Psqlite3; _para2:cint; args:array of const):cint;cdecl;
  217. db_mutex : function (_para1:Psqlite3):Psqlite3_mutex;cdecl;
  218. db_status : function (_para1:Psqlite3; _para2:cint; _para3:pcint; _para4:pcint; _para5:cint):cint;cdecl;
  219. extended_errcode : function (_para1:Psqlite3):cint;cdecl;
  220. log : procedure (_para1:cint; _para2:pcchar; args:array of const);cdecl;
  221. soft_heap_limit64 : function (_para1:sqlite3_int64):sqlite3_int64;cdecl;
  222. sourceid : function :pcchar;cdecl;
  223. stmt_status : function (_para1:Psqlite3_stmt; _para2:cint; _para3:cint):cint;cdecl;
  224. strnicmp : function (_para1:pcchar; _para2:pcchar; _para3:cint):cint;cdecl;
  225. unlock_notify : function (_para1:Psqlite3; _para2:xNotifycb; _para3:pointer):cint;cdecl;
  226. wal_autocheckpoint : function (_para1:Psqlite3; _para2:cint):cint;cdecl;
  227. wal_checkpoint : function (_para1:Psqlite3; _para2:pcchar):cint;cdecl;
  228. wal_hook : function (_para1:Psqlite3; _para2:wal_hook_cb; _para3:pointer):pointer;cdecl;
  229. blob_reopen : function (_para1:Psqlite3_blob; _para2:sqlite3_int64):cint;cdecl;
  230. vtab_config : function (_para1:Psqlite3; op:cint; args:array of const):cint;cdecl;
  231. vtab_on_conflict : function (_para1:Psqlite3):cint;cdecl;
  232. close_v2 : function (_para1:Psqlite3):cint;cdecl;
  233. db_filename : function (_para1:Psqlite3; _para2:pcchar):pcchar;cdecl;
  234. db_readonly : function (_para1:Psqlite3; _para2:pcchar):cint;cdecl;
  235. db_release_memory : function (_para1:Psqlite3):cint;cdecl;
  236. errstr : function (_para1:cint):pcchar;cdecl;
  237. stmt_busy : function (_para1:Psqlite3_stmt):cint;cdecl;
  238. stmt_readonly : function (_para1:Psqlite3_stmt):cint;cdecl;
  239. stricmp : function (_para1:pcchar; _para2:pcchar):cint;cdecl;
  240. uri_boolean : function (_para1:pcchar; _para2:pcchar; _para3:cint):cint;cdecl;
  241. uri_int64 : function (_para1:pcchar; _para2:pcchar; _para3:sqlite3_int64):sqlite3_int64;cdecl;
  242. uri_parameter : function (_para1:pcchar; _para2:pcchar):pcchar;cdecl;
  243. xvsnprintf : function (_para1:cint; _para2:pcchar; _para3:pcchar; _para4:va_list):pcchar;cdecl;
  244. wal_checkpoint_v2 : function (_para1:Psqlite3; _para2:pcchar; _para3:cint; _para4:pcint; _para5:pcint):cint;cdecl;
  245. auto_extension : function (_para1:pointer ):cint;cdecl;
  246. bind_blob64 : function (_para1:Psqlite3_stmt; _para2:cint; _para3:pointer; _para4:sqlite3_uint64; _para5:sqlite3_destructor_type):cint;cdecl;
  247. bind_text64 : function (_para1:Psqlite3_stmt; _para2:cint; _para3:pcchar; _para4:sqlite3_uint64; _para5:sqlite3_destructor_type;
  248. _para6:cuchar):cint;cdecl;
  249. cancel_auto_extension : function (_para1:pointer ):cint;cdecl;
  250. load_extension : function (_para1:Psqlite3; _para2:pcchar; _para3:pcchar; _para4:Ppcchar):cint;cdecl;
  251. malloc64 : function (_para1:sqlite3_uint64):pointer;cdecl;
  252. msize : function (_para1:pointer):sqlite3_uint64;cdecl;
  253. realloc64 : function (_para1:pointer; _para2:sqlite3_uint64):pointer;cdecl;
  254. reset_auto_extension : procedure ;cdecl;
  255. result_blob64 : procedure (_para1:Psqlite3_context; _para2:pointer; _para3:sqlite3_uint64; _para4:sqlite3_destructor_type);cdecl;
  256. result_text64 : procedure (_para1:Psqlite3_context; _para2:pcchar; _para3:sqlite3_uint64; _para4:sqlite3_destructor_type; _para5:cuchar);cdecl;
  257. strglob : function (_para1:pcchar; _para2:pcchar):cint;cdecl;
  258. value_dup : function (_para1:Psqlite3_value):Psqlite3_value;cdecl;
  259. value_free : procedure (_para1:Psqlite3_value);cdecl;
  260. result_zeroblob64 : function (_para1:Psqlite3_context; _para2:sqlite3_uint64):cint;cdecl;
  261. bind_zeroblob64 : function (_para1:Psqlite3_stmt; _para2:cint; _para3:sqlite3_uint64):cint;cdecl;
  262. value_subtype : function (_para1:Psqlite3_value):cuint;cdecl;
  263. result_subtype : procedure (_para1:Psqlite3_context; _para2:cuint);cdecl;
  264. status64 : function (_para1:cint; _para2:Psqlite3_int64; _para3:Psqlite3_int64; _para4:cint):cint;cdecl;
  265. strlike : function (_para1:pcchar; _para2:pcchar; _para3:cuint):cint;cdecl;
  266. db_cacheflush : function (_para1:Psqlite3):cint;cdecl;
  267. system_errno : function (_para1:Psqlite3):cint;cdecl;
  268. trace_v2 : function (_para1:Psqlite3; _para2:cunsigned; _para3:xCallback; _para4:pointer):cint;cdecl;
  269. expanded_sql : function (_para1:Psqlite3_stmt):pcchar;cdecl;
  270. set_last_insert_rowid : procedure (_para1:Psqlite3; _para2:sqlite3_int64);cdecl;
  271. prepare_v3 : function (_para1:Psqlite3; _para2:pcchar; _para3:cint; _para4:cuint; _para5:PPsqlite3_stmt;
  272. _para6:Ppcchar):cint;cdecl;
  273. prepare16_v3 : function (_para1:Psqlite3; _para2:pointer; _para3:cint; _para4:cuint; _para5:PPsqlite3_stmt;
  274. _para6:Ppointer):cint;cdecl;
  275. bind_pointer : function (_para1:Psqlite3_stmt; _para2:cint; _para3:pointer; _para4:pcchar; _para5:sqlite3_destructor_type):cint;cdecl;
  276. result_pointer : procedure (_para1:Psqlite3_context; _para2:pointer; _para3:pcchar; _para4:sqlite3_destructor_type);cdecl;
  277. value_pointer : function (_para1:Psqlite3_value; _para2:pcchar):pointer;cdecl;
  278. vtab_nochange : function (_para1:Psqlite3_context):cint;cdecl;
  279. value_nochange : function (_para1:Psqlite3_value):cint;cdecl;
  280. vtab_collation : function (_para1:Psqlite3_index_info; _para2:cint):pcchar;cdecl;
  281. end;
  282. // These are no-ops.
  283. procedure SQLITE_EXTENSION_INIT1;
  284. procedure SQLITE_EXTENSION_INIT3;
  285. // This is actually unnecessary, but is provided for compatibility with sqlite3ext tutorial.
  286. Var
  287. sqlite3_api : Psqlite3_api_routines;
  288. procedure SQLITE_EXTENSION_INIT2(v: Psqlite3_api_routines);
  289. implementation
  290. procedure SQLITE_EXTENSION_INIT1;
  291. begin
  292. end;
  293. procedure SQLITE_EXTENSION_INIT2(v: Psqlite3_api_routines);
  294. begin
  295. sqlite3_api:=v;
  296. end;
  297. procedure SQLITE_EXTENSION_INIT3;
  298. begin
  299. end;
  300. end.