FireDac не вставляет символ & в SQLITE varchar

У нас есть table1 в базе данных SQLITE.

  CREATE TABLE table1 (id int PRIMARY KEY ,name nvarchar );    

После использования в DELPHI XE3 Firedac команды ADQuery SQL

  INSERT INTO table1 (id,name)  VALUES (1,'&Text To &Insert.')

у нас в названии столбца только "К". Весь текст, начинающийся с символа & до любого символа пунктуации, не копируется! есть 2 исключения: тексты, за которыми следует && или \ &, копируются правильно. Та же команда в приложении Sqlite Expert Personal работает нормально.

Это ошибка Firedac? А как скопировать тексты в базу данных, содержащую символ &, с помощью Firedac? (тексты - это HTML-документы, содержащие много символов "&")


person Avrob    schedule 19.01.2017    source источник
comment
Это не имеет ничего общего с SQLite или FireDAC. Ваш текст недействителен HTML.   -  person CL.    schedule 19.01.2017
comment
Эту ошибку я заметил, когда после вставки действительного html-документа вместо строки ‹P› ‹/P› в названии столбца было ‹P›; ‹/P›.   -  person Avrob    schedule 20.01.2017
comment
Забудьте о HTML. В данном примере после вставки строки & Text To & Insert. у нас есть в названии столбца только To.: Весь текст, начинающийся с символа &, до тех пор, пока любой знак препинания или пробел не будет скопирован!   -  person Avrob    schedule 20.01.2017
comment
Посмотрите, как работают объекты в HTML (SGML).   -  person CL.    schedule 20.01.2017
comment
Уважаемый CL. Забудьте об HTML. Давайте поговорим о строке & Text To & Insert .. После вставки с помощью Firedac ADQUERY в имя поля у нас остается только To. . Та же команда в приложении Sqlite Expert Personal, которое, я полагаю, не использует Firedac, правильно вставляет данную строку.   -  person Avrob    schedule 20.01.2017
comment
Могу прислать Вам пример применения.   -  person Avrob    schedule 20.01.2017


Ответы (1)


Это FAQ:

Q8: Мой запрос, содержащий символы "&", "!" символы не могут выполняться правильно. Что не так?

[…] '&' Определяет начало макропеременной. […] Если вы не используете макросы, установите ResourceOptions.MacroCreate и MacroExpand на False.

person CL.    schedule 20.01.2017
comment
Спасибо. Это помогло. И почему они не установили для этих параметров значение по умолчанию False ?? - person Avrob; 20.01.2017