It migth be OT, but it could be a hint.
I have discovered that when using SQLite (at least with ZeosDB) it is an advantage to make a "real" definition af all database fields the same way as if it was MySQL (this also makes it easier if one want to change database).
By full definition, I mean defining eg. a text field as a VARCHAR(XX), instead of just defining it as a text field - on the surface this seems like nonsense as SQLite only operates with text, not varchar, but I have found out in practise that if not doing this, the dataset for some odd reason interprets a text field as a blob, thus giving weird results.
Another bonus of doing it this way is, that when using a DBGrid, the columns are not a kilometre wide, but adjusts in accordance to the field definition.
So make a full definition like this:
CREATE TABLE "customer" (
`custid` VARCHAR(20),
`custcvr` VARCHAR(10) DEFAULT (''),
`custgroup` INTEGER DEFAULT (0),
`custname` VARCHAR(20) DEFAULT (''),
`custphone` VARCHAR(20) DEFAULT (''),
`custemail` VARCHAR(20) DEFAULT (''),
`custadr1` VARCHAR(20) DEFAULT (''),
`custadr2` VARCHAR(20) DEFAULT (''),
`custzip` VARCHAR(10) DEFAULT (''),
`custcity` VARCHAR(20) DEFAULT (''),
`newsletter` BOOL NOT NULL DEFAULT ('N'),
`other` BOOL NOT NULL DEFAULT ('N'),
`custcontact` VARCHAR(30) DEFAULT (''),
PRIMARY KEY(custid)
)
I know it sounds a little absurd, but it could maybe give you a clue.