Hi, Firebird v2.5
I've noticed something with "by descriptor" UDF parameters and trying to get the character set from paramdsc.dsc_sub_type. I wrote a simple UDF to reflect back the type information it found in the paramdsc given as the first parameter. When I use it like this: CREATE PROCEDURE "Test ( "Param1" TYPE OF NAME_D ) RETURNS ( "Result" TYPE OF NAME_D ) AS BEGIN "Result" = ReflectType(:"Param1"); SUSPEND; END Everything works as expected and the result tells me the character set of Param1 was WIN1252. But if I do this from the client (an IBObjects application): EXECUTE BLOCK ( "Param1" TYPE OF NAME_D = ? ) RETURNS ( "Result" TYPE OF NAME_D ) AS BEGIN "Result" = ReflectType("Param1"); SUSPEND; END I get a character set of 127 (presumably ttype_dynamic). I get the same 127 result when I use this from the client: SELECT ReflectType('abcdef') FROM RDB$DATABASE although in this case is makes some sort of sense. Is this expected behaviour? (I can understand the last example but the EXECUTE BLOCK example seems wrong.) ttype_dynamic is not all that useful inside a UDF, because it has no way to find out what the relevant attachment character actually set was. -- Geoff Worboys Telesis Computing Pty Ltd ------------------------------------------------------------------------------ What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports.http://sdm.link/zohodev2dev Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel