Roger, Thank you for your answer. I knew from old days that va_* things are very fragile (not only from the portability point of view).
In the "duct tape programming" situation where I currently am, the best I can came up with is by fixing the max # of arguments to 32 and using a _ugly_ kludge on the stack. It gives something along the line of: select printf('abc %lli %s %s %g %s %lld', -357, Proper('febÆhùivÊ 1no 2no'), null, 3.1415926, Upper('ådefàßùç'), 1234567890123456 ) as Result; returning: Result abc -357 Febæhùivê 1No 2No <NULL> 3.14159 ÅDEFÀSSÙÇ 1234567890123456 I confess that the way I pass sqlite3_mprintf(fmt, stuff) the "stuff" structure containing ... ahem ... exactly what the stack is supposed to contain is probably not a very academic programming model. (but it works >:-} ) _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users