问题
I experienced a strange behaviour in Firedac (Delphi 10.3.3) against Firebird 3.04. The following statement
insert into icds(id,title) values (55,'!M01.0;M02.6;M03.5');
creates a record in the database like this
id title
-- -------------
55 .0;M02.6;M03.5
when run with the fdScript component. If I run the same script with any database IDE, the record is created correctly (same database, same Server). It is defintively related to the exclamation mark because if I replace replace '!' by '?' the record is also inserted correctly by firedac. The Database is UTF8 and the varchar field is 4096 chars, I tried smaller sizes to no avail. The exclamation mark seems to swallow the following three chars.
I did not find any documentation nor did I find parameters of the component that can cause this. Is this a (nasty) bug or is it a feature I am not aware of?
来源:https://stackoverflow.com/questions/59812774/delphi-firedac-scripts-and-exclamation-mark