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

Вниз

Как организовать мастер детайл с компонентами ADO   Найти похожие ветки 

 
Term   (2004-09-27 15:23) [0]

Как правильно использовать TADOQuery
не матюкайте
дайте пример для таблиц такой структуры

Master
id bigint identity
name varchar 30

Detail
id bigint identity
id_master bigint
det_name


 
msguns   (2004-09-27 15:30) [1]

Мастер читаешь как обычно, а вот детал..
Стандартный способ указать в его DataSource ссылку на Мастер и связать их через мастер-ключ(в данном случае id). При таком подходе не надо сушить башку для синхронизированного обновление курсора детала. Однако с обновление записей детала (да и мастера) надо быть осторожным, чтоб не порушить эту самую "связь"


 
Term   (2004-09-27 15:36) [2]

да насчёт датасорсурса я в курсе
я вот что имел ввиду
скажем в ADOQuery1  я поместил такой запрос на вставку

insert into master
(name)
VALUES
(:name)


какой запрос надо поместить во второй зависимый компонент чтобы получить значение Master.Id которое выдаст сервер


 
Johnmen ©   (2004-09-27 15:39) [3]

>Term   (27.09.04 15:36) [2]

http://delphimaster.net/view/3-1095759267/


 
msguns   (2004-09-27 15:49) [4]

Если связь через св-во DataSource, то ничего никуда помещать не надо - оно типа само "разберется", перестроив запрос к деталу автоматически. Но для "осознанного" апдэйта данных ЛИЧНО Я делаю запрос на определение нового астер ID (и не Мастер тоже) отдельно, после чего уже рисую запросы на вставку. При таком подходе я уверен, что никаких эксцессов не возникнет НЕЗАВИСИМО ОТ КОМПОНЕНТОВ, которые я использую для доступа к БД


 
Term   (2004-09-27 16:10) [5]

т.е. так если что поправьте

INSERT INTO Master(NAME) VALUES("Фирма")
SELECT @@IDENTITY AS id


 
Term   (2004-09-27 16:15) [6]

т.е.

INSERT INTO Master(NAME) VALUES("Фирма");
SELECT @@IDENTITY AS id;
INSERT INTO Detail(id_master, DET_NAME) VALUES(id,"Detal");


 
sniknik ©   (2004-09-27 16:21) [7]

тогда уж
INSERT INTO Master (NAME) VALUES ("Фирма")
INSERT INTO Detail (id_master, DET_NAME) VALUES (@@IDENTITY, "Detal")
и все


 
Term   (2004-09-27 16:24) [8]


> INSERT INTO Master (NAME) VALUES ("Фирма")
> INSERT INTO Detail (id_master, DET_NAME) VALUES (@@IDENTITY,
> "Detal")

а если привязанно будет не одна таблица а скажем 3 или 4 то
@@IDENTITY бутем для третьей таблицы от мастеровской таблицы или уже от предыдушего запроса в детальную


 
sniknik ©   (2004-09-27 16:59) [9]

сам смотри что тебе больше подходит
в BOL загляни, IDENT_CURRENT пойдет для > 1, 3 - 4, либо сохрани значение в своей переменной и его используй.



Страницы: 1 вся ветка

Текущий архив: 2004.10.24;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.021 c
1-1097236916
Aleksandr.
2004-10-08 16:01
2004.10.24
Имеет ли функция CopyFile проблемы с многопоточностью и проч.?


6-1092410075
Дмитрий Ботвин
2004-08-13 19:14
2004.10.24
Тип запуска службы


14-1096887385
QuasiLamo
2004-10-04 14:56
2004.10.24
монитор ЖК 17"


10-1051253379
Aleksandr
2003-04-25 10:49
2004.10.24
Что может вызывать такую ошибку при завершении сервера MIDAS?


3-1095710137
Донской
2004-09-20 23:55
2004.10.24
Прога закрывается сразу после запуска - ADO ???