Денис |
Отправлено: 11.07.2005, 12:57 |
|
Не зарегистрирован
|
Здравствуйте! Есть 3 таблицы Отделы (dep), Подразделения(sub) и Статистика(stat). В обработчике события AfterScroll для sub делаю выборку из stat по году(вводится на форме) и по подразделению из sub. Sub и dep связаны master-detail.
Если выбрал отдел в таблице dep, к-рый не имеет подразделения, то AfterScroll для sub не срабатывает и в stat остается содержимое предыдущего запроса, что не желательно. Как этого избежать? |
|
Guest |
Отправлено: 11.07.2005, 13:08 |
|
Не зарегистрирован
|
Например анализировать в DataSource для dep OnDataChange с Field = NULL и стирать из окна статистику. А еще удобно "отложенный" master-detail (при переходах по master detail менять спустя 1-2 сек) |
|
Денис |
Отправлено: 12.07.2005, 10:28 |
|
Не зарегистрирован
|
Здравствуйте! Спасибо за ответ. Как лучше реализовать "програмно" отложенный механизм мастер-деталь?
Событи OnDataChenge лучше применить для sub, т.к. для статистики нам нужен идентификатор этого подразделения. |
|
Guest |
Отправлено: 12.07.2005, 17:27 |
|
Не зарегистрирован
|
QUOTE |
Как лучше реализовать "програмно" отложенный механизм мастер-деталь?
|
Как лучше — решать вам. Я делаю так:
При изменении положения курсора dataset'а master взвожу таймер на N
секунд (или ставлю в очередь к таймеру). По истечении этого времени или раньше, если потребовалось принудительно обновить подзапрос, выполняю подзапрос detail в "ручном режиме".
QUOTE |
Событи OnDataChenge лучше применить для sub
|
Если у вас для каждой строки sub своя статистика, то да, иначе к dep. Но смотрите сами. |
|
Денис |
Отправлено: 13.07.2005, 16:02 |
|
Не зарегистрирован
|
Здравствуйте! У меня как раз статистика для каждой строки sub. Ваш совет насчет OnDataChange очень помог! Спасибо.
Каким способом(методом) можно быстро очистить таблицу?
Я использовал запрос тот же запрос, что и в остальных случаях, только sub_id = NULL. |
|
Guest |
Отправлено: 13.07.2005, 16:13 |
|
Не зарегистрирован
|
QUOTE |
Каким способом(методом) можно быстро очистить таблицу?
Я использовал запрос тот же запрос, что и в остальных случаях, только sub_id = NULL.
|
Не понял. Очистить таблицу (долго) Delete From table_name. Быстро — зависит от сервера, например в Oracle Ttruncate Table table_name. Причем здесь sub_id = NULL?
А если контролы, то можно и так. |
|