| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Базы данных и репортинг > динамическое добавление вычислимых полей |
| Автор: cyberovskij 9.8.2011, 23:54 | ||
Нужно к датасету добавить во время рантайма высисляемые поля. Добавление можно делать когда датасет еще не открыт:
Проблема в том что после открытия те поля, что перечисляются в селецт запросе уже более не доступны. Есть ли какой то способ сделать их доступными кроме как вручную и явно добавлять соответствующие поля к ФиелдДефс? |
| Автор: Данкинг 10.8.2011, 00:00 |
| Ну, переподключись к БД после добавления. Кстати, а зачем так сложно: обычным запросом добавить не проще? |
| Автор: cyberovskij 10.8.2011, 01:18 | ||||||||
Как такое в запросе сделать? Добавлено через 6 минут и 8 секунд
После этого всего я вызываю. ibdataset3.active=true; в результате имею только 2 поля typviza2 и ifreg |
| Автор: Frees 10.8.2011, 06:13 | ||
вроде
лишнее Добавлено через 1 минуту и 39 секунд а в чем проблема? СУБД то какая? |
| Автор: Данкинг 10.8.2011, 09:26 |
А ты догадайся по ibdataset3. Обычно, через ALTER TABLE. Вот я говорю: попробуй сначала нормальным способом добавить поле, а не столь экзотическим. |
| Автор: Frees 10.8.2011, 11:19 |
дак варианты остаются, IB или FB.... или IIF в запросе |
| Автор: Frees 10.8.2011, 11:42 |
этого поля нет в запросе. Автор наверно, что то типа кросс таблицы хочет сделать........ |
| Автор: cyberovskij 10.8.2011, 14:03 | ||
Моя твоя не понимает |
| Автор: Данкинг 10.8.2011, 14:12 |
Ну так запрос-то чем не устраивает? |
| Автор: cyberovskij 10.8.2011, 14:15 | ||||||
Это пример из OnCalFields. Да Frees прав typviza2 нету в запросе. Конечно вопрос можно закрыть создав еще одну таблицу где полями будут typeofviza и поле которое будет хранить название ртом этого typeofviza. И в запросе соединить эти поля. Но у меня сейчас чисто академический интерес: как сделать так чтобы открыв запрос и к тем полям что уже присутствуют в нем добавить вичисляемые и при этом не добавлять вручную каждое поле что присутствует в запросе :
Полей просто очень много. И влом добавлять каждое к FieldDefs. Если я не буду добавлять поля к FieldDefs то в результате в наборе данных будет только 2 вичислимых поля |