Page 1 of 1

Crush with SQLite from 3.25.0 version on 32-bit

Posted: Mon 24 Dec 2018 09:56
by Tarifer
Hello!

User-defined functions not works in SQLite from 3.25.0 version (AV error).

As I seek, since version 3.25.0 SQLite have changed internal structure of FuncDef:

Code: Select all

struct FuncDef {
  i8 nArg;             /* Number of arguments.  -1 means unlimited */
  u32 funcFlags;       /* Some combination of SQLITE_FUNC_* */
  void *pUserData;     /* User data parameter */
...
Up to 3.24 it was:

Code: Select all

struct FuncDef {
  i8 nArg;             /* Number of arguments.  -1 means unlimited */
  u16 funcFlags;       /* Some combination of SQLITE_FUNC_* */
  void *pUserData;     /* User data parameter */
..
It works in 64-bit, but not in 32-bit.

I use Delphi XE2, UniDAC 7.4 Pro (with sources).

I try use monkey patch instead of TFuncDef:

Code: Select all

type
  TNewFuncDef = packed record
    nArg : Integer;             // Number of arguments.  -1 means unlimited
    funcFlags : Cardinal;    // Some combination of SQLITE_FUNC_*
    pUserData : Pointer;     // User data parameter
  end;
And it works.

Please fix.

Re: Crush with SQLite from 3.25.0 version on 32-bit

Posted: Mon 24 Dec 2018 11:26
by Tarifer
Additional: I use non-direct mode (attach client dll, downloaded from sqlite.org).

Re: Crush with SQLite from 3.25.0 version on 32-bit

Posted: Wed 26 Dec 2018 12:28
by MaximG
That's true, since version 3.25.0, SQLite have changed internal structure of FuncDef. We have changed the work of our components to support these changes. We are currently preparing to release our products with these changes. As a workaround, we can send you a night build of UniDAC. For this, please, using the e-support form https://www.devart.com/company/contactform.html), provide your license number and the IDE version you are interested in.

Re: Crush with SQLite from 3.25.0 version on 32-bit

Posted: Wed 26 Dec 2018 16:36
by Tarifer
Thank you!

Re: Crush with SQLite from 3.25.0 version on 32-bit

Posted: Thu 27 Dec 2018 10:41
by MICHALA
Please change your on the occasion the SQLite on 3.26:
https://www.zdnet.com/article/sqlite-bu ... -browsers/

Michal

Re: Crush with SQLite from 3.25.0 version on 32-bit

Posted: Fri 28 Dec 2018 08:28
by MaximG
We implemented support for SQLite engine version 3.26.0 in our product. We are currently preparing to release our products with these changes. As a workaround, we can send you a night build of UniDAC. For this, please, using the e-support form ( https://www.devart.com/company/contactform.html ), provide your license number and the IDE version you are interested in.