Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.037 c
3-7340
Monk
2003-06-10 11:18
2003.07.03
Восстановление базы Access


1-7436
EvgeniyR
2003-06-23 08:40
2003.07.03
Сохранение настроек


14-7720
Snake2000
2003-06-16 21:50
2003.07.03
Какой Линукс выбрать


8-7561
Stan
2003-01-30 18:23
2003.07.03
Возникает ошибка


1-7464
kah68
2003-06-20 16:17
2003.07.03
Изменение курсора мышки при выполнении SQL запроса





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский