Форум: "Базы";
Текущий архив: 2003.07.03;
Скачать: [xml.tar.bz2];
Внизкак сделать мастер-детайл не по всему полю, по его части? Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.013 c