Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
1-1836
TCrash
2002-12-21 11:03
2003.01.02
TTreeView в качестве навигатора


1-1830
delpher_gray
2002-12-17 16:45
2003.01.02
CommPortDriver


6-1848
nickolayLI
2002-10-21 07:16
2003.01.02
найти тачку в сети с заданным портом


3-1760
Eduard
2002-12-11 15:23
2003.01.02
Проблема MSAccess и BDE


14-1900
cyborg
2002-12-11 23:09
2003.01.02
Не ожидали?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский