powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как добавить/удалить поля в DataSet?
13 сообщений из 13, страница 1 из 1
Как добавить/удалить поля в DataSet?
    #32349691
Ich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ich
Гость
Здравствуйте.

Проблема:
В формочке пользователь выбирает, поля, необходимые ему в отчете.
В соответсвии с его выбором создается view, в котором присутсвуют
только выбранные поля, которые и попадают в отчет.
Также существуют 2 вычисляемых поля, которые всегда должны попасть в отчет.
Было сделано как обычно по простому
Изначально, в датасете находятся все возможные поля view, а по выбору пользователя удаляются ненужные.
Все бы хорошо, но
при повторной генерации отчета, естественно программа вылетала с ошибкой если пользователь выбирал удаленное поле.
Как победить? второй день мучаюсь
В идеале надо бы динамически считывать FieldDefs и добавлять вычисляемые
поля с необходимым индексом

БД: Oracle
Доступ к БД: Direct Oracle Access + MIDAS
...
Рейтинг: 0 / 0
Как добавить/удалить поля в DataSet?
    #32349730
hyh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сразу оговорюсь что ни с Ораклом, ни с Мидасом не знаком, но
может быть не удалять а просто _выбирать_ нужные колонки?
Делать просто select из viewa каждый раз при запуске отчета
...
Рейтинг: 0 / 0
Как добавить/удалить поля в DataSet?
    #32349760
Ich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ich
Гость
2hyh
Не понял ... :((
Ты предлагаешь оставить поля датасета пустыми,
а выбирать из view необходимое?
Во view всегда лежит то что мне небоходимо,
а количество столбцов (полей) различно, но мне необходимы все.
Почему не
Код: plaintext
select * from v_myview
?
Если не использовать вычисляемые поля, - все работает на ура!
Т.е. DataSet на лету подхватывает поля из выборки грида их корректно
отображает. Но .. пропадают вычислеямые поля. :((
...
Рейтинг: 0 / 0
Как добавить/удалить поля в DataSet?
    #32349766
VVD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DataSet можно генерить динамически
qDataSet:=TClientDataSet.Create(self);
qDataSet.FieldDefs.Clear;
with qDataSet.FieldDefs.AddFieldDef do
begin DataType := ftInteger; Name := 'Поле1'; end;
with qDataSet.FieldDefs.AddFieldDef do
begin DataType := ftString; Name := Поле2'; end;
и т.д.
...
Рейтинг: 0 / 0
Как добавить/удалить поля в DataSet?
    #32349783
Ich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ich
Гость
А зачем DataSet создавать динамически?
Пробовал такой код:
.... OnBeforeQuery
Sender.FieldDefs.Clear;
дальше аналогично ...
Видимы становятся только вычичсляемые поля :(
...
Рейтинг: 0 / 0
Как добавить/удалить поля в DataSet?
    #32349803
VVD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так ведь спрашивал "Как добавить/удалить поля в DataSet?" - я и сказал !
...
Рейтинг: 0 / 0
Как добавить/удалить поля в DataSet?
    #32349808
Ich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ich
Гость
Но это не решает задачу :(
Мне необходимо добавить вычислемые поля,
не удаляя при этом физические поля БД.
...
Рейтинг: 0 / 0
Как добавить/удалить поля в DataSet?
    #32349814
Zigs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А просто делать невидимыми ненужные поля не подойдет?
...
Рейтинг: 0 / 0
Как добавить/удалить поля в DataSet?
    #32349831
Ich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ich
Гость
view динамически создается с нужным количеством полей.
т.е. нужны все поля из view + 2 вычисляемых.
Как все это динамически подгрузить в датасет?
...
Рейтинг: 0 / 0
Как добавить/удалить поля в DataSet?
    #32349837
Zigs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Изначально, в датасете находятся все возможные поля view, а по выбору пользователя удаляются ненужные

Зачем их удалять можно просто делать visible := false

Или я опять что-то неправильно понял?
...
Рейтинг: 0 / 0
Как добавить/удалить поля в DataSet?
    #32349841
Ich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ich
Гость
Если сделать Visible = False у несуществуюего поля вылетает ексепшен.
Заранее неизвестно, сколько полей во view.
...
Рейтинг: 0 / 0
Как добавить/удалить поля в DataSet?
    #32349854
Zigs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Используй DataSet.FindField('name')
...
Рейтинг: 0 / 0
Как добавить/удалить поля в DataSet?
    #32350053
Ich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ich
Гость
2Zigs
Нет, ошибка вылетает где-то внутри DataSet'а
на этапе анализа полученных данных, т.е.
корректно ее обработать не удается.Поэтому я
и удалял несуществующие поля.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как добавить/удалить поля в DataSet?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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