Yes, tryed that but It does not work in this scenario.
GuidToString returns a string representation of 38 chars while the field is a 16 bytes. Than I get a 'string truncation' error from Firebird (Firedac connection)
A solution would be to use a database function to convert the field to this same string representation, eg: uuid_to_char(a.UUID) = :StringParam
BUT, I'm looking for a solution, if possible, to just pass the param value as a raw 16 bytes data.
Sorry. Doing more tests I realize Find(AGuid) also do not work (same problem). It works only for cached objects. It brakes when executing the SQL 'where a.UUID=?'
That is not the same thing. Use GuidToString, which adds brackets around it.
In any case, this is probably something that should be set at FireDAC level, all Aurelius does is set a parameter value in FireDac using AsString.
I used the string representation without brackets -- as an example -- 'couse it's the expected format for the Firebird char_to_uuid function used as a workaround.
Can't use GuidToString (and I guess AsString also will not work) since DB field is not a varchar(32/36/38) to keep a string (hex format) representation but a char(16) character set octets (not a 'string' but more of an array of 16 bytes). So, to insert/update is another problem.
Fortunatly, most of the problems are resolved and works quite well when defining FUUID as TBytes insread of string. The only downside is that Aurelius do not support TBytes type for ID columns.