[fpc-pascal]SQLite and NULL Strings...

Michael Van Canneyt michael.vancanneyt at wisa.be
Mon Jul 14 09:59:17 CEST 2003


On Mon, 14 Jul 2003, James Mills wrote:

> Hi,
>
> This is a very weird behaviour I've found of either SQLite, or the Unit.
> I'm not sure... I have been discussing this same problem on the SQLite
> mailing list but without success there, so perhaps someone here might
> know...
>
> I have attached a test database, which contains 1 database entry, null
> strings are inserted using NULL... Check the database schema yourself.
>
> The problem therein lies in the fact that test3.pas returns "" for the
> query: SELECT channelNotice FROM channels WHERE channel LIKE '#ProLogiTech';
> It should return a null string as it does in test2.pas and in the sqlite
> shell program.

The problem is that an implicity conversion from Nil to empty string is
done. You cannot solve this as long as stringlists are used to contain
the data. (ok, you could set 'Null' as the string, but that is sloppy)

You'd need to have (as a minimum) an array of TField records:
  TField = Record
    IsNull : Boolean;
    Value : String;
  end;

But this will require major changes, so I suggest trying to find or
implement a TDataset descendent for SQLIte, this will solve most of
your problems at once.

Michael.





More information about the fpc-pascal mailing list