Crush with SQLite from 3.25.0 version on 32-bit

Discussion of open issues, suggestions and bugs regarding UniDAC (Universal Data Access Components) for Delphi, C++Builder, Lazarus (and FPC)
Post Reply
Tarifer
Posts: 24
Joined: Thu 26 May 2011 08:13

Crush with SQLite from 3.25.0 version on 32-bit

Post by Tarifer » Mon 24 Dec 2018 09:56

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.

Tarifer
Posts: 24
Joined: Thu 26 May 2011 08:13

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

Post by Tarifer » Mon 24 Dec 2018 11:26

Additional: I use non-direct mode (attach client dll, downloaded from sqlite.org).

MaximG
Devart Team
Posts: 1242
Joined: Mon 06 Jul 2015 11:34

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

Post by MaximG » Wed 26 Dec 2018 12:28

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.

Tarifer
Posts: 24
Joined: Thu 26 May 2011 08:13

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

Post by Tarifer » Wed 26 Dec 2018 16:36

Thank you!

MICHALA
Posts: 11
Joined: Tue 17 Jan 2017 18:35

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

Post by MICHALA » Thu 27 Dec 2018 10:41

Please change your on the occasion the SQLite on 3.26:
https://www.zdnet.com/article/sqlite-bu ... -browsers/

Michal

MaximG
Devart Team
Posts: 1242
Joined: Mon 06 Jul 2015 11:34

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

Post by MaximG » Fri 28 Dec 2018 08:28

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.

Post Reply