Добавить запись в BLOB из TMemo

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
AkANz
новенький
Сообщения: 26
Зарегистрирован: 16.03.2010 12:59:02
Откуда: Алтайский край

Добавить запись в BLOB из TMemo

Сообщение AkANz »

Добрго времен суток.

Подскажите, пожалуйста, каким образом добавить в поле NAME_DS_DOPOLNEN с типом BLOB SUB_TYPE 1 SEGMENT SIZE 80 CHARACTER SET UTF8 данные из TMemo.
На форме fmDiagnos лежит TMemo mDsDopolnen. По нажатии кнопки сохранить (запрос для примера упрощен):

Код: Выделить всё

quTemp.SQL.Clear;
quTemp.SQL.Add('INSERT INTO ds_hospital (name_ds_dopolnen) 'VALUES (:name_ds_dopolnen)'); 
quTemp.Params.ByNameAsString['name_ds_dopolnen'] := fmDiagnos.mDsDopolnen.Lines.Text;
quTemp.ExecSQL;   

Ошибка: BLOB and array data types are not supported for move operation
Incompatible column/host variable data type

quTemp это UIBQuery из набора компонентов UIB 2.1
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

AkANz
Замените компонент TMemo на TDBMemo.
AkANz
новенький
Сообщения: 26
Зарегистрирован: 16.03.2010 12:59:02
Откуда: Алтайский край

Сообщение AkANz »

Vadim писал(а):Замените компонент TMemo на TDBMemo.


Не помогает
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

В каком смысле не помогает? TDBMemo прямо связан с полем BLOB. Надо только транзакцию подтвердить после изменения данных в DBMemo.
svk12
постоялец
Сообщения: 411
Зарегистрирован: 09.06.2008 18:42:47

Сообщение svk12 »

Стоит попробовать обойтись без параметров:

Код: Выделить всё

quTemp.SQL.Clear;
quTemp.SQL.Add('INSERT INTO ds_hospital (name_ds_dopolnen)  VALUES ('''+fmDiagnos.mDsDopolnen.Lines.Text+''')');
quTemp.ExecSQL; 
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

svk12 писал(а):Стоит попробовать обойтись без параметров:

Самы не правильный метод.
Нельза напрямую текст писать в скрипт
Представь - что получится - если в тексте написать конструкцию типа:

Код: Выделить всё

  '); delete from ds_hospital where (0=0

первая кавычка обязательна :-)

Это UIB (и птиц) не преобразует это к двум последовательным командам. А вот есть сервера - не будем показывать пальцем, которые такой финт сделают. И что будет в итоге?
надо делать только через параметры.
svk12
постоялец
Сообщения: 411
Зарегистрирован: 09.06.2008 18:42:47

Сообщение svk12 »

Ну без двоеточия это будет не скрипт, а запрос, напрямую передаваемый серверу.
Вот только с какой версии птюч разрешает прямую запись текста в блоб, уже не помню.
AkANz
новенький
Сообщения: 26
Зарегистрирован: 16.03.2010 12:59:02
Откуда: Алтайский край

Сообщение AkANz »

Решил вопрос заменой UIBQuery на FBDataSet от Алексея Лагунова.
Ответить