SQ Lite 3 EXDI
Last published: May 14, 2012 by 'markpi'
Defines 10 Classes
Extends 21 Classes
Contains the sqlite3-specfic protocols for the External Database Interface (EXDI).
Works with sqlite 3.x. Some SQL UNION protocol requires 3.6.18 or better.
1) SQLite3 version 3.6.8 and newer adds support for parentheses in FTS3 query patterns using the
compile-time option. Note that this is not the default - you must set it to true when compiling. This option modifies the query pattern parser in FTS3 to (among other things) allow query expressions to contain nested parenthesis. If it is absent, then SQLite3EXDI and StoreForSQLite3 will work OK, but some complex queries (wther hand-crafted or Glorp-created) can give wrong results. For example,
WHERE x = 2 AND: (y = 3 OR: z = 40)
will #sqlPrint as:
x = 2 AND y = 3 OR z = 40
so if x = 1, y = 2, z = 40 then (doing left to right with no parens) we get an overall true instead of the expected false.
2) This utility works with 32-bit sqlite3 binaries in a 32-bit image and with 64-bit binaries in a 64-bit image. On a 64-bit Windows machine, put the 64-bit sqlite3.dll in C:\Windows\System32 (or equivalent) and the 32-bit sqlite3.dll in C:\Windows\SysWOW64 (or equivalent), whereas on a 32-bit machine, put the 32-bit sqlite3.dll in C:\Windows\System32. On Linux, you can set LD_LIBRARY_PATH accordingly, or alter the preselected directories (particularly with a 64-bit image). Perhaps the easiest thing to get started is to simply copy the 'libsqlite3.so' file into the 'vw7.9/bin/linuxx86_64' directory and adjust the libraryDirectories entry accordingly.