Я испытал странное поведение в Fireda c (Delphi 10.3.3) против Firebird 3.04. Следующий оператор
insert into icds(id,title) values (55,'!M01.0;M02.6;M03.5');
создает запись в базе данных, например,
id title
-- -------------
55 .0;M02.6;M03.5
при запуске с компонентом fdScript. Если я запускаю тот же сценарий с любой IDE базы данных, запись создается правильно (та же база данных, тот же сервер). Это определенно связано с восклицательным знаком, потому что если я заменю заменить '!' по '?' запись также вставлена корректно с помощью fireda c. База данных - UTF8, а поле varchar - 4096 символов, я пробовал меньшие размеры, но безрезультатно. Восклицательный знак, кажется, поглощает следующие три символа.
Я не нашел никакой документации и не нашел параметров компонента, которые могут вызвать это. Это (неприятная) ошибка или это функция, о которой я не знаю?