Главная страница
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.024 c
6-7586
dictator
2003-04-26 18:36
2003.07.03
можно ли одновременно подкл. к одному UDP 2-м прогам?


3-7290
Alek Aaz
2003-06-04 12:10
2003.07.03
Table is busy


14-7696
MalkoLinge
2003-06-17 12:58
2003.07.03
Книжка Бакнелла


14-7682
ilyasim
2003-06-06 03:48
2003.07.03
OpenGL(Open, open... :D)


14-7697
savva
2003-06-17 10:32
2003.07.03
у кого был опыт лечения полиартрита?