Форум: "Базы";
Текущий архив: 2003.10.20;
Скачать: [xml.tar.bz2];
ВнизСвязь мастер-детальный в IB Найти похожие ветки
← →
Term (2003-09-28 10:37) [0]Привет мастера, проясните ответы на некоторые вопросы:
При работе с IB, как правильно организовать связь мастер детальный при вводе данных в базу. С использованием TIBTable и индексов,
или лучше с использованием TIBDataSet с написанием в соответсвующих свойсвах соотв запросов для delete,insert,select и т.д. и в зависимых датасетах в событие OnNewRecord прописать чтобы бралось соотв. значение из мастер-датасета для связующего поля.
Но как я могу понять и первый вариант и второй по сути одинаковы, т.е. пересылается большое количество записей на клиентские компьютер.
Вот я и в раздумье.... как это всё должно быть или я чтото не так понимаю
← →
Term (2003-09-28 11:20) [1]тишина............у мастеров выходной :))))))))))))
← →
Pat (2003-09-28 14:53) [2]"Мир Interbase" 2-е издание
← →
Term (2003-09-28 14:57) [3]так я там и смотрел, как организовать енту связь, поэтому у меня и назрел этот вопрос, так как и так и так получается большой запрос, и нехилый трафик.
← →
Zacho (2003-09-28 18:18) [4]
> Term (28.09.03 14:57) [3]
Чтобы не было большого траффика - не используй TIBTable, а используй TIBDataSet.
← →
Inkotex (2003-09-28 19:01) [5]Мне кажется лучше использовать StoredProcedure and IBQuery
← →
Zacho (2003-09-28 19:13) [6]
> Inkotex (28.09.03 19:01) [5]
Неа.. Зачем использовать несколько компонентов, если можно обойтись одним TIBDataSet ?
← →
Term (2003-09-29 09:11) [7]Но для TIBDataSet в свойстве SelectSQL тоже нужно прописать
select * from table
или же если не указать все поля, как я потом сохраню данные, а этот же запрос выполняет и TIBTable......
← →
Zacho (2003-09-29 09:34) [8]
> Term (29.09.03 09:11) [7]
Почитай что-нибудь по SQL, в частности - про JOIN
← →
Term (2003-09-29 10:02) [9]как я понял JOIN это соединение таблиц, т.е. я получу в одном наборе данные из нескольких таблиц, или я чтото не так понимаю... а этот набор будет редактируемым?
← →
Term (2003-09-29 10:41) [10]select distinct M.NUM, M.FAMIL, C.NUM, C.NAME from MAIN M LEFT JOIN Children C on M.NUM=C.NUM
а как сделать его редактируемым
← →
Johnmen (2003-09-29 11:34) [11]>Term
По-моему, ты нарушаешь Правила поведения в форуме. А именно превращаешь его в "Курс молодого бойца" для отдельной личности.
Лень не дает тебе такого права...
Согласен ?
:)
← →
Term (2003-09-29 11:38) [12]:((((((
просто у меня много практики написания локальных БД, а клиент-сервер пишу первый раз, и стараюсь разобраться
← →
stud (2003-09-29 12:00) [13]а какая разница? select пишется через Ё??
← →
Term (2003-09-29 12:17) [14]
> а какая разница? select пишется через Ё??
в локальных то в основном через TTable потльзовался
← →
Max Zyuzin (2003-09-29 14:01) [15]>Term (29.09.03 11:38) [12]
Не слушай этого провакатора (Johnmen ©) ;)
В общем при работе с БД ИМХО лучше забыть вообще про TTable и пользоваться TQuery (TIBQuery).
Но для начала, лучше на самом деле почитать какую нить книжку... причем не обязательно про InterBase вообще про SQL...
В твоем варианте придется все делать ручками, самому писать запросы на добавление, удалиение и т.д.
← →
Term (2003-09-29 15:58) [16]
> 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
если кому не трудно покажите на примере
← →
Johnmen (2003-09-29 16:06) [17]Все просто. Используй TIBDataSet. Это во-первых.
У него есть св-во DataSource, которое должно указывать на "мастерный" источник. Это во-вторых.
А в третьих, в "детальном" TDataSet"е в SELECT"е добавляешь WHERE fk=:ID
Тогда в этот запрос автоматом будет подставляться значение поля ID из "мастерного" НД.
Все....
← →
Term (2003-09-29 16:14) [18]всё всем спасибо больше вопросов нет :)))))))
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.10.20;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.049 c