I found through examination of a log file that had been edited in SO2SDR
that callsign or exchange data was stored as UTF-8 by the Qt table
editing class. As I saw no issue with edited log data in SO2SDR versus
data stored as QByteArray blobs, I've tested the following patch
locally:
- newqso.setValue(SQL_COL_CALL, QVariant(qso->call));
+ newqso.setValue(SQL_COL_CALL, QVariant(QString::fromAscii(qso->call)));
Doing this for the Sent and Receive exchange fields seems to work as
well.
Looking at the sqlite dump comparing records entered before the applied
patch:
INSERT INTO "log" VALUES(19,'0154',21250400,X'573047434A',4,'06202012',4,X'3141',X'4B53',NULL,NULL,X'3241',X'4B53',NULL,NULL,1,'true');
and after the applied patch:
INSERT INTO "log" VALUES(31,'2024',14000000,'K1YT',3,'07102012',2,'1A','KS',NULL,NULL,'1D','NH',NULL,NULL,2,'true');
if I understand it, the leading X from the SQLite dump indicates a
binary blob, although in this case they are ASCII byte values for the
fields stored as strings.
As this seems to be a non-visible change, I don't think that setting the
PRAGMA user_version is necessary.
I haven't pushed this to my tree on Github yet.