Вниз
Скачать: CL | DM;

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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.005 c
14-1911
angelant
2002-12-15 13:47
2003.01.02
Dos... Дисковая операционная система - есть люди, зна... команды?


1-1799
EvgeniyM
2002-12-20 13:05
2003.01.02
Вопрос по Outlook+OLE


4-1938
kamalov
2002-11-16 13:03
2003.01.02
подскажите функцию...


1-1784
kalishenko stas
2002-12-20 11:35
2003.01.02
Рихтер


14-1908
SONY
2002-12-15 11:36
2003.01.02
Русская справка




   Наверх