Плотно работаю с табличными параметрами и столкнулся с одной весьма неудобной вещью.
Создается объект TMSTableData, прописываем тип на сервере, открываем заполняем.
Затем присваиваем ParamByName('xxx').asTable:= TMSTableData.Table
Затем все открываем и все замечательно работает, НО, если перед открытием запроса объект TMSTableData будет например
удален, то запрос не выполнится и получим ошибку. Тут как бы все логично, идет ссылка на уже несуществующий в памяти объект.
Но в случае когда мы динамически работаем с запросами использующими табличные параметры приходится городить связи между самим TMSQuery и всеми табличными объектами тоже созданными в рантайме.
Т.е хочется какой-то метод который загрузит данные из TMSTableData в табличный параметр после чего может быть безопасно убит, а запрос будет преспокойно открываться и работать. В идеале вообще чтобы TMSTableData был встроен в TMSParam и не требовалось городить связки объектов.
Табличные параметры
Re: Табличные параметры
Для загрузки данных из TMSTableData в табличный параметр необходимо будет продублировать данные, что приведет к потере производительности и увеличению используемой памяти приложения. Поэтому, мы не видим целесообразности подобного решения.
Вы можете попробовать добавить тег в TMSTableData, который будет признаком, можно ли удалять объект TMSTableData.
Вы можете попробовать добавить тег в TMSTableData, который будет признаком, можно ли удалять объект TMSTableData.
Re: Табличные параметры
В принципе я просто написал наследника на TMSQuery :)
Re: Табличные параметры
Рады слышать, что проблема решена. Если у вас возникнут вопросы по использованию наших компонентов - обращайтесь.