Если указывать неограниченный размер поля Memo то значение поля не отображает в объекте, пишет просто текст (memo). Возникает два вопроса.
1. Это можно обойти если оставить поле неограниченным, отображать в объекте именно значение поля?
2. Если делать запрос SQL на такое поле и записывать его в поле на форме из SQL то на удаленном ПК это поле пишет достаточно долго, такое впечатление что данные запрашивает из БД для каждой записи такого поля, а не берет значение из SQL. Это верно?


(memo) в объекте если неограниченное поле объекта TdxMemo
- admin
- Разработчик
- Сообщения: 5353
- Зарегистрирован: 14 мар 2016, 11:32
- Откуда: Ленинградская
- Благодарил (а): 44 раза
- Поблагодарили: 386 раз
(memo) в объекте если неограниченное поле объекта TdxMemo
1. Обойти не получиться, в следующей версии будет запрет на использование таких полей в объектах.
2. Blob-данные считываются из базы только при обращении к полю.
2. Blob-данные считываются из базы только при обращении к полю.
- Иван
- Интересующийся
- Сообщения: 239
- Зарегистрирован: 22 дек 2018, 14:16
- Откуда: Kiev
- Благодарил (а): 34 раза
- Поблагодарили: 74 раза
(memo) в объекте если неограниченное поле объекта TdxMemo
admin писал(а):1. Обойти не получиться, в следующей версии будет запрет на использование таких полей в объектах.
2. Blob-данные считываются из базы только при обращении к полю.
По вопросу 2 вышло обойти прописав replace(coalesce(t.[memo поле],''''),'''','''').
Возможно это можно так же прописать для объекта и тогда не нужно исключать memo из полей для объектов?
- Иван
- Интересующийся
- Сообщения: 239
- Зарегистрирован: 22 дек 2018, 14:16
- Откуда: Kiev
- Благодарил (а): 34 раза
- Поблагодарили: 74 раза
(memo) в объекте если неограниченное поле объекта TdxMemo
admin писал(а):Что это Вы сделали?
При формировании SQL что бы сразу прочитало поле использовал замену пустое на пустое что б выдало в результат типа новую результирующую строку, хотя по сути строка та же так как замена была пустая строка на пустую строку. Coalesce на всяк случай, если вдруг поле пустое что б не было null.
- admin
- Разработчик
- Сообщения: 5353
- Зарегистрирован: 14 мар 2016, 11:32
- Откуда: Ленинградская
- Благодарил (а): 44 раза
- Поблагодарили: 386 раз
(memo) в объекте если неограниченное поле объекта TdxMemo
Не пойдет. Это вынудит прочитать все блобы.
- Иван
- Интересующийся
- Сообщения: 239
- Зарегистрирован: 22 дек 2018, 14:16
- Откуда: Kiev
- Благодарил (а): 34 раза
- Поблагодарили: 74 раза
(memo) в объекте если неограниченное поле объекта TdxMemo
admin писал(а):Не пойдет. Это вынудит прочитать все блобы.
Нашел менее ресурсозатратный вариант, возможно было б возможно в объект выводить ознакомительную начальную часть текста мемо 1000 символов. Базу не замедлит, читает только начало по идее.
cast(t.[мое поле] as varchar(1000))
Если уже не вариант то будет на заметку тем кто из sql неограниченных мемо полей выводит данные, такое решение снимает тормоза при записи из sql запроса.