Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.20;
Скачать: CL | DM;

Вниз

Связь мастер-детальный в 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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.02 c
7-65657
AnDeM
2003-08-05 14:18
2003.10.20
Переключение раскладки клавы


3-65371
igor_m
2003-09-25 16:47
2003.10.20
Ошибка при использовании ADOTable


9-65304
Sword-Fish
2003-04-16 13:47
2003.10.20
Звук !!!


7-65651
Mr. Smit
2003-08-04 00:51
2003.10.20
Как сохранить ClipBoard в файл ?


3-65356
Beton
2003-09-30 12:13
2003.10.20
Interbase и многопроцессорный сервер