Страница 1 из 1
А как в CS решается вопрос значения поля Master-table?
Добавлено: 04 сен 2007, 02:50
Kotъ-Begemotъ
Вот нужно добавить запись в Master и несколько записей в Detail. В Paradox я делаю просто. У меня есть функция, внутри которой происходит
Код: Выделить всё
MasterTable.Append;
MasterTable.Post;
Result := MasterTableKeyField.Value;
И после вызова этой функции, (если она вернула не ноль, то есть запись добавлена) я могу этот "Result" использовать для записи MasterKey в DetailTable и проблема вроде решена...
А в CS это как делается? Ну добавил я запросом (Query или через DataSet того же FibPlus) запись в Master и дальше? Ведь Table инкапсулирующая а общнем-то собой Query как-то это делает?!? Я понимаю, что я могу запросить значение генератора, и потом сформировать запрос, но тогда и триггеры отменяются, получается?!? Как-то нехорошо...
Добавлено: 04 сен 2007, 07:50
Dimitry Sibiryakov
Читай статью про генераторы.
Добавлено: 05 сен 2007, 22:48
Kotъ-Begemotъ
Dimitry Sibiryakov писал(а):Читай статью про генераторы.
Уже. Как я понял, чтобы не отказываться от триггеров, которые всё же удобны если в таблицу пишется из разных процедур, и не всегда нужно знать новое значение генератора, достаточно делать триггер в виде
Код: Выделить всё
CREATE TRIGGER TBI_CLIENTS FOR CLIENTS
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
IF (NEW.CLIENT_ID IS NULL) THEN
NEW.CLIENT_ID = GEN_ID(NEWID, 1);
END
и соответственно вызывать Insert с заданным (полученным от генератора) новым значением, тогда триггер не сработает... Что ж, в принципе проблем нет, и волки сыты, и овцы целы...

Добавлено: 06 сен 2007, 00:23
kdv
только цитировать так статью не надо

Добавлено: 06 сен 2007, 00:37
Kotъ-Begemotъ
kdv писал(а):только цитировать так статью не надо

Погоди, а что, где-то я недопонял чего-то?!? Подскажи, будь добёр!
Добавлено: 06 сен 2007, 01:27
kdv
www.ibase.ru/devinfo/generator.htm
этот пример кода и есть в статье, с объяснениями. Или ты наоборот, именно и процитировал? Так я про то, что просто так цитировать не надо. Если есть вопрос по тексту - цитируй на здоровье. Но тут-то цитата есть, а вопроса нет

Добавлено: 06 сен 2007, 01:47
Kotъ-Begemotъ
kdv писал(а):www.ibase.ru/devinfo/generator.htm
этот пример кода и есть в статье, с объяснениями. Или ты наоборот, именно и процитировал? Так я про то, что просто так цитировать не надо. Если есть вопрос по тексту - цитируй на здоровье. Но тут-то цитата есть, а вопроса нет

Да, я именно процитировал решение предложенное в статье, назвав его вполне отвечающим на мой корневой вопрос

Который после этого собственно и отпал

))