The only funny thing going on (IMHO) is that your dev environment needs to use the same string type as the database. Lazarus strings are UTF-8. If you don't want to manually do conversions, the database should use the same. YMMV.
Normally, and this has been the case until IBX 2.7.2, you could just use TField.asString, regardless of the string type. Conversion was done automatically.
I even tried it with sqldb and there is absolutely no problem to use TField.asString, regardless of the database has NONE as character set.
Besides that... The strings dus really contain the text. This is shown in the debugger and it works when using it as single parameter or string.
Only when concatenating with another string or hardcoded string, things start to break
But I'm not sure why it's changed in IBX 2.7.2 (or why it still works in sqldb). Maybe that's something for @tonyw