Главная страница
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.015 c
1-7407
Skier
2003-06-16 11:09
2003.07.03
DLL. Передача


1-7515
ABBS
2003-06-21 18:19
2003.07.03
Закрытие приложения


14-7717
Шурик
2003-06-17 17:26
2003.07.03
Indy and Attachments


7-7737
Sniffer
2003-04-18 14:09
2003.07.03
Опять о Ctrl+Alt+Del, Alt+Tab...


14-7625
_MAD_
2003-06-18 23:16
2003.07.03
Выключение компьютера в ДОСЕ