Thanks for the replies. There’s plenty for me to look at there. I’ve been in poor health the last 5 years and after almost a year’s break I’m trying to get back into sqlite to preserve my sanity. I’m so rusty my opening post is riddled with errors.
I’ve just realised that, before my break, I was dealing with this as follows #define VALTXT(i) String((wchar_t*)sqlite3_value_text16(values[i])) and inside the function I’d access the parameter with String S = VALTXT(0); The String type is an embarcadero c++ builder typedef which I think is a wide string. I then accessed the i’th character using S[I]. The above involves copying the parameter to another string. In an old post I made on this forum someone told me I should be using sqlite3_value_text( as that was sqlite’s default storage and would save sqlite having to convert it to utf16. I’ve been asking myself if I could have done the above more efficiently as sqlite’s converting the original string then I’m converting it and copying it. While thinking about that I started to wonder how c++ handled utf8/16. E.g. To access the i’th character does it have to rattle through all previous I-1 characters to find the start of character i, how pointer arithmetic was handled when pointing to utf8/16 chars etc. _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users