Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.03;
Скачать: CL | DM;

Вниз

как сделать мастер-детайл не по всему полю, по его части?   Найти похожие ветки 

 
alienka   (2003-06-09 12:45) [0]

Уважаемые мастера! Помогите вот с такой проблемой.
Есть 3 таблицы. Пользователи, Звонки, Предоплаты. Нужно сделать в форме 2 грида (реализую в dbGridEh), в первом выборка из таблиц Пользователи (фамилия пользователя) и Предоплаты (месяц в виде числа (integer) и сумма), во втором - звонки, относящиеся к конкретному пользователю за конкретный период (причем период в таблице Звонки ессно в виде даты (дд/мм/гггг).
Соображаю, что датасеты к этим двум гридам должны быть связаны. Пробовала:
1) использовала таблица-мастер+таблица-детайл
2) использовала датасеты
3) подозреваю что придется реализовывать через запросы.
А вся загвоздка в том, что я не знаю, можно ли реализовать связаь мастер-детайл не по полям, а по части поля. Т.е. связать id пользователя в одной с таким же полем в другой таблице, понятно. А как связать поле месяц (integer) одной таблицы c частью поля (mon(year)) типа date другой таблицы?
Вот такой вопрос.
Если у вас не будет предложений, буду пытаться реализовать все через запросы...


 
Johnmen ©   (2003-06-09 13:26) [1]

В любом случае работаем с запросами. Вернее с тем, что они возвращают.

I вар. Для детального в WHERE добавляем что-то типа month(<date-field>)=:monthfield, где monthfield - поле мастерного НД. Настраиваем DataSource детального на мастера.
II вар. В AfterScroll мастера обновляем запрос детейла с необходимыми параметрами, значения которых берем из тек.записи мастера.


 
alienka   (2003-06-10 16:06) [2]

Спасибо! Оба способа работают. Но оба одинаково медленно. Возможно из-за компонентов ado, которые я использую... Может быть знает кто, как их настроить, чтобы и соединение с базой и выборки быстрее работали?
Например, соединения жду 1-2 минуты. Выборка для мастер-детайл 2-3.. :(
Заранее спасибо за все конструктивные советы!


 
Sandman25 ©   (2003-06-10 16:21) [3]

Можно попытаться завести в БД поле, в которое записывать месяц, и построить по полю индекс. Тогда выборка будет идти быстрее.

Соединение 1-2 минуты? Я с Ado никогда не работал, но что-то слишком уж долго...



Страницы: 1 вся ветка

Текущий архив: 2003.07.03;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.019 c
1-7536
Lion
2003-06-14 22:35
2003.07.03
Как узнать дату ?


7-7733
Cro
2003-04-23 09:57
2003.07.03
COM-port


1-7427
eLVik
2003-06-23 11:50
2003.07.03
Поиск файлов


8-7558
CrowD
2003-03-21 11:50
2003.07.03
Почему так долго?


1-7547
yu-roman
2003-06-22 03:55
2003.07.03
TListBox скорость загрузки