Главная страница
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.012 c
9-7284
K@zzel
2003-01-21 16:54
2003.07.03
Просто вопрос


1-7484
Evil_forever
2003-06-19 23:52
2003.07.03
---|Ветка была без названия|---


7-7734
Sliski Slimak
2003-04-23 13:39
2003.07.03
как организовать синхронизацию папок.....


3-7368
YuraKiller
2003-05-27 01:27
2003.07.03
Как автоматически освежать запрос?


1-7486
McSimm2
2003-06-19 12:52
2003.07.03
---|Ветка была без названия|---