Форум: "Базы";
Текущий архив: 2003.01.02;
Скачать: [xml.tar.bz2];
ВнизHelp! Delphi+DOA+Oracle, запрос по нескольким таблицам. Найти похожие ветки
← →
EvgeniyM (2002-12-11 11:32) [0]Наверно, ламерский вопрос, но он меня достал уже. База Oracle, доступ к ней из Delphi через DOA. Есть DataSet, в котором запрос по двум таблицам, например:
select member.*, member.rowid, member_type.type_name
from member, member_type
where member.type_id=member_type.type_id
На него повешен DBGrid. Как сделать так, чтобы при изменении grida обновлялась только основная таблица, а вспомогательная (member_type) не трогалась? Поставить readonly на колонку type_name в gride я не могу, т.к. на нее повешен LookupCombo, изменяющий member.type_id. В результате изменяется поле type_name и вылетает сообщение типа "incorrect filed name". Может я вообще не тем путем иду, тогда как делаются подобные вещи?
← →
Sergey13 (2002-12-11 11:52) [1]2EvgeniyM (11.12.02 11:32)
Не понял. Если в запросе есть member_type.type_name то зачем его еще и на лукап вешать. Тут надо или то или другое, ИМХО. Если хочешь именно с лукапом работать то надо два датасета.
Первый:
select member.*, member.rowid
from member
Второй:
select member_type.type_id,member_type.type_name
from member_type
И к первому ручками добавить лукапное поле со ссылкой на второй.
А вообще, я лукапы не люблю(особенно если справочник здоровый). Лучше такие запросы редактировать не в гриде, а в отдельной форме. Но это мое ИМХО.
← →
EvgeniyM (2002-12-11 12:08) [2]На самом деле есть у меня, конечно, второй DataSet, на который и повешен lookup. Но мне при изменении lookup нужно изменять поле member.type_id в основном dataset. Я не нашел, как это сделать проще, чем повесить лукап на поле member_type_name и при выборе его изменять значение member.type_id (lookup из компонент InfoPower3000). Я ведь не могу повесить его прямо на поле type_id, потому что тогда в гриде это id и будет отображаться. Может быть, это все проще делается, тогда как?
← →
EAlexander (2002-12-11 14:15) [3]не совсем в тему, но ситуация была подобная :
в гриде редактируется DataSet, но некторые поля в гриде подстановки из справочников и т.п. т.е. их редактируешь, а в БД надо не то, что пользователь ввел, а киод или т.п.
DOA пытался собрать запрос по всем измененным полям - возникала ошибка.
Решилось просто- те поля, которые есть подстановка из справочников делаешь InternalCalc. DOA их пропускает, но грида показывает нормально.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.01.02;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.004 c