powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как сохранить поле типа memo у компонента tcxVerticalGrid в поток?
3 сообщений из 3, страница 1 из 1
Как сохранить поле типа memo у компонента tcxVerticalGrid в поток?
    #40082487
svnvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все поля у меня стандартно сохраняются
Код: pascal
1.
2.
q.SetVal('employers_representative', EditEmployersRepresentative.Properties.Value);
q.SetVal('n1all', EditN1all.Properties.Value);


но мемо-поле не сохраняется в поле типа MEDIUMBLOB стандартным образом, только через поток
Обычно срабатывало так (когда просто на форму бросался компонент TMemo):
Код: pascal
1.
2.
3.
4.
5.
6.
7.
Stream := TMemoryStream.Create;
try
    Memo1.Lines.SaveToStream(Stream);
    q.SetBlob('notes', Stream);
 finally
    Stream.Free;
 end;


Но в компоненте tcxVerticalGrid когда назначаешь полю тип Memo, то все равно данные передаются через Properties.Value, который является типом Variant, соответственно, написать ...Value.SaveToStream(Stream) не получится. Как выйти из положения?
Код: pascal
1.
2.
3.
4.
5.
6.
7.
Stream := TMemoryStream.Create;
try
    EditN15.Properties.Value.SaveToStream(Stream); // это не сработает
    q.SetBlob('recommendations', Stream);
finally
    Stream.Free;
end;
...
Рейтинг: 0 / 0
Как сохранить поле типа memo у компонента tcxVerticalGrid в поток?
    #40082496
svnvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вдруг обнаружил, что данные читаются и сохраняются обычным образом через ADQuery.FieldByName('поле').AsString;
Просто они не сохранялись, если не переместить фокус поля ввода на другой элемент сетки.
...
Рейтинг: 0 / 0
Как сохранить поле типа memo у компонента tcxVerticalGrid в поток?
    #40082575
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svnvlad,

Код: pascal
1.
2.
3.
4.
5.
6.
7.
procedure WriteTextInStream(const AText: string; AStream: TStream);
var
   pText    : PChar;
begin
   pText:=PChar(AText);
   AStream.Write(pText^,Length(AText));
end;



аргументом можно и Variant вместо String'а подставлять
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как сохранить поле типа memo у компонента tcxVerticalGrid в поток?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]