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

Reply via email to