Components for Delphi and C++ Builder.

Перейти в английский форум
Перейти на EhLib.com
Текущее время: 28 мар 2024, 14:20

Часовой пояс: UTC




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
СообщениеДобавлено: 27 июл 2020, 16:30 
Не в сети

Зарегистрирован: 25 фев 2019, 14:39
Сообщений: 60
Добрый день!

Окружение: Lazarus 2.1, Ehlib 9.5.021 (собрана без FPC_CROSSP), Windows 10.

Используется связка TZQuery -> TDataSetDriverEh -> TMemTableEh -> TDataSource -> TDBGridEh.
В ZQuery есть lookup поле. В случае, если исключить из связки DataSetDriverEh и MemTableEh, всё работает как надо, значение поля отображается в гриде. Для того, чтобы работала группировка, подключил DataDriver и MemTable. Лукап поле в гриде перестало отображаться (и заголовок колонки стал просто именем поля, то есть соответствующий объект TField не находится). MemTable при попытке создать статические поля также не видит данное поле (оно просто отсутствует в списке, равно как и ещё одно вычисляемое поле).

По документации, вроде, подобного происходить не должно. Подскажите, пожалуйста, есть ли возможность как-то заставить работать такую функциональность на этих компонентах или придётся переписывать запрос так, чтобы в TZQuery соответствующий lookup появлялся как просто поле?

Спасибо!

С уважением
Евгений.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 31 июл 2020, 14:22 
Не в сети

Зарегистрирован: 25 фев 2019, 14:39
Сообщений: 60
Дополнение: если я создаю lookup-поля в MemTable, то получаю при открытии MemTable ошибку "Operation not allowed, dataset "%s" is not on an edit or insert state".
Подскажите, что я делаю не так?

На всякий случай: TZQuery - это библиотека ZeosDBO.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 01 авг 2020, 00:24 
Не в сети

Зарегистрирован: 21 дек 2011, 18:48
Сообщений: 1546
Добрый день.

При работе с MemTableEh в режиме YourDataSet-TDataSetDriverEh-MemTableEh
в MemTableEh передаются поля только с типом FieldKind=fkData.
Calculated и Lookup поля не переносятся.
Их надо создавать в MemTableEh отдельно.

При классическом сценарии создания Lookup полей MemTableEh подобных ошибок возникать не должна.
Напишите, пожалуйста, пошагово как воспроизвести подобную ошибку в MemTableEh, по возможности с испольнованием только стандартных компонент.

_________________
Best regards
EhLib support Team


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 05 авг 2020, 17:35 
Не в сети

Зарегистрирован: 25 фев 2019, 14:39
Сообщений: 60
Проблема решена. Оказалось, дело в следующем: поле, которое должно быть результатом просмотра справочника собиралось в запросе с помощью concat(). Такое поле TZQuery создаёт с типом ftMemo. Почему-то (это пока выяснить не удалось) TMemTableEh не хочет в качестве LookupResult мемо-поле.

Соответственно, решением является явный вызов CAST() в теле запроса, тогда поле создаётся как ftString и всё работает.


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC


Кто сейчас на форуме

Сейчас этот форум просматривают: Bing [Bot] и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB