Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подчинённые формы и Delphi, Фильтр или запрос? 
:(
    Опции темы
Serggggg
  Дата 23.12.2003, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 12.12.2003
Где: Донецк, Украина

Репутация: нет
Всего: нет



Снова нужен help!
В MSAccess есть такое понятие, как подчинённая форма. Передо мной стоит вопрос о реализации такой же задачи в Delphi.
Т.е. есть 2 таблицы - скажем так, "шапка" документа и его однотипное содержание. Таблицы связаны между собой по ID. Шапка заполняется посредством компонентов TDBEdit и TDBLookupComboBox. А однотипное содержание документа - это Grid.
При переходе по записям "шапки" в Grid'e надо динамически отображать соответствующее содержание (n записей с тем же ID, что и у "шапки").
Как мне лучше поступить с Grid'ом? Применить запрос или же таблицу с фильтром? И если можно, скажите, в какие моменты лучше всего обновлять Grid.
Простите, что допекаю элементарными вопросами, но это мой первый опыт работы с БД.
--------------------
C уважением, Serggggg.
PM MAIL ICQ   Вверх
AntonSaburov
Дата 23.12.2003, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: нет
Всего: 118



Очень много зависит от размеров таблиц, где они находятся и прочая. В принципе в Delphi есть такая штука, как Master/Detail и ее можно использовать, но это нормально работает только для небольших таблиц.

Но лично я предпочитаю (я стараюсь даже на локальных таблицах использовать SQL для удобства дальнейшего расширения) следующую идею:
На перемещение по мастер-набору вешается процедурка, которая запускает таймер. И уже сам таймер (по моим наблюдениям 0,7 секунды) должен сделать запрос к базе на получение подчиненных записей. И само собой остановить таймер. Следующее перемещение по мастер-набору запускает таймер опять и по таймауту получаем данные из детэйл.

Здесь удобно то, что при быстром перемещении по мастер не происходит постоянное обращение к детэйл набору. А как только пользователь остановился дольше на какой-либо записи он получает данные для нее.


PM MAIL WWW ICQ   Вверх
Serggggg
Дата 24.12.2003, 09:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 12.12.2003
Где: Донецк, Украина

Репутация: нет
Всего: нет



Хорошо, допустим, это запрос.
А как мне вводить и редактировать подчинённые записи? Использовать ещё 1 запрос на обновление или добавление?
--------------------
C уважением, Serggggg.
PM MAIL ICQ   Вверх
AntonSaburov
Дата 25.12.2003, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: нет
Всего: 118



Цитата
Хорошо, допустим, это запрос.
А как мне вводить и редактировать подчинённые записи? Использовать ещё 1 запрос на обновление или добавление?


Я делаю именно так. Тут даже два запроса - INSERT и UPDATE
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0679 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.