Quote Originally Posted by Eduardo- View Post
Strings in VB6 are UTF-16, not UTF-8. Of course a conversion takes place at some point (in the components).
I know, but there's a difference between holding all text data in memory as UTF-16 vs. holding it all in memory as UTF-8, and converting to UTF-16 as needed (for example, when getting a text value via a .ValueMatrix property or similar). Again, I don't know how either Kr00l or Olaf have implemented it, but if it is possible to keep everything in SQLite's managed memory as UTF-8, then that would be a sensible choice to save memory (although possibly at the expense of performance from repeated UTF-8->UTF-16 conversions on multiple accesses of the same data).

I guess what I'm saying is, there are potentially two ways to handle the data in memory pulled from an SQLite database - slurp it all into VB6 datatypes/structures/memory which would (of course) use UTF-16 for Text/Strings, or maintain pointers to SQLite managed memory where TEXT fields are UTF-8 and then perform conversions to UTF-16 as needed when data is actually needed/accessed.

Anyway, I'm purely speculating at this point, Kr00l and/or Olaf can clarify if the care to. If I have the time, I will take a closer look and find out myself.