Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Связь мастер-детальный в IB


Term ©   (2003-09-28 10:37:00) 

Привет мастера, проясните ответы на некоторые вопросы:
При работе с IB, как правильно организовать связь мастер детальный при вводе данных в базу. С использованием TIBTable и индексов,
или лучше с использованием TIBDataSet с написанием в соответсвующих свойсвах соотв запросов для delete,insert,select и т.д. и в зависимых датасетах в событие OnNewRecord прописать чтобы бралось соотв. значение из мастер-датасета для связующего поля.
Но как я могу понять и первый вариант и второй по сути одинаковы, т.е. пересылается большое количество записей на клиентские компьютер.
Вот я и в раздумье.... как это всё должно быть или я чтото не так понимаю


Term   (2003-09-29 16:14:00) [1]

всё всем спасибо больше вопросов нет :)))))))


Johnmen   (2003-09-29 16:06:00) [2]

Все просто. Используй TIBDataSet. Это во-первых.
У него есть св-во DataSource, которое должно указывать на "мастерный" источник. Это во-вторых.
А в третьих, в "детальном" TDataSet"е в SELECT"е добавляешь WHERE fk=:ID
Тогда в этот запрос автоматом будет подставляться значение поля ID из "мастерного" НД.
Все....


Term   (2003-09-29 15:58:00) [3]


> Max Zyuzin © (29.09.03 14:01) [15]



> В общем при работе с БД ИМХО лучше забыть вообще про TTable
> и пользоваться TQuery (TIBQuery).
> Но для начала, лучше на самом деле почитать какую нить книжку...
> причем не обязательно про InterBase вообще про SQL...
> В твоем варианте придется все делать ручками, самому писать
> запросы на добавление, удалиение и т.д.

я почитал только вот у меня нет чёткого понимания как организовать связь мастер-детальный с помощью TIBQuery,
с TTable, я пользовался индексами, а как делать запросы для добавления с использованием TIBQuery, чтобы соблюдать условия ссылочной целостности, покажите хотя бы один примерчик, и я уже дальше разберусь сам. Просто те книги которые у меня есть показывают в основном использование оператора SELECT для связанных наборов соединение используется JOIN. А как использовать INSERT показанно только для не связанных наборов, вот я и пытаюсь выяснить как это лучше сделать.

вот предположим у меня 2 таблицы
Table1 и Table2
ID1 ID2
NAME1 NAME2

если кому не трудно покажите на примере


Max Zyuzin   (2003-09-29 14:01:00) [4]

>Term (29.09.03 11:38) [12]
Не слушай этого провакатора (Johnmen ©) ;)
В общем при работе с БД ИМХО лучше забыть вообще про TTable и пользоваться TQuery (TIBQuery).
Но для начала, лучше на самом деле почитать какую нить книжку... причем не обязательно про InterBase вообще про SQL...
В твоем варианте придется все делать ручками, самому писать запросы на добавление, удалиение и т.д.


Term   (2003-09-29 12:17:00) [5]


> а какая разница? select пишется через Ё??

в локальных то в основном через TTable потльзовался


stud   (2003-09-29 12:00:00) [6]

а какая разница? select пишется через Ё??


Term   (2003-09-29 11:38:00) [7]

:((((((
просто у меня много практики написания локальных БД, а клиент-сервер пишу первый раз, и стараюсь разобраться


Johnmen   (2003-09-29 11:34:00) [8]

>Term

По-моему, ты нарушаешь Правила поведения в форуме. А именно превращаешь его в "Курс молодого бойца" для отдельной личности.
Лень не дает тебе такого права...
Согласен ?
:)


Term   (2003-09-29 10:41:00) [9]

select distinct M.NUM, M.FAMIL, C.NUM, C.NAME from MAIN M LEFT JOIN Children C on M.NUM=C.NUM

а как сделать его редактируемым


Term   (2003-09-29 10:02:00) [10]

как я понял JOIN это соединение таблиц, т.е. я получу в одном наборе данные из нескольких таблиц, или я чтото не так понимаю... а этот набор будет редактируемым?


Zacho   (2003-09-29 09:34:00) [11]


> Term (29.09.03 09:11) [7]

Почитай что-нибудь по SQL, в частности - про JOIN


Term   (2003-09-29 09:11:00) [12]

Но для TIBDataSet в свойстве SelectSQL тоже нужно прописать
select * from tableили же если не указать все поля, как я потом сохраню данные, а этот же запрос выполняет и TIBTable......


Zacho   (2003-09-28 19:13:00) [13]


> Inkotex (28.09.03 19:01) [5]

Неа.. Зачем использовать несколько компонентов, если можно обойтись одним TIBDataSet ?


Inkotex   (2003-09-28 19:01:00) [14]

Мне кажется лучше использовать StoredProcedure and IBQuery


Zacho   (2003-09-28 18:18:00) [15]


> Term (28.09.03 14:57) [3]

Чтобы не было большого траффика - не используй TIBTable, а используй TIBDataSet.


Term   (2003-09-28 14:57:00) [16]

так я там и смотрел, как организовать енту связь, поэтому у меня и назрел этот вопрос, так как и так и так получается большой запрос, и нехилый трафик.


Pat   (2003-09-28 14:53:00) [17]

"Мир Interbase" 2-е издание


Term   (2003-09-28 11:20:00) [18]

тишина............у мастеров выходной :))))))))))))


Наверх

Титульная страница Поиск, карта сайта Написать письмо