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

Вниз

Работа с ADO под SQL Server   Найти похожие ветки 

 
AlexGof ©   (2003-03-07 11:01) [0]

Помогите чайнику ! Есть два набора данных ADODataSet связанных ключевым полем kod через добавление одного набора в другой методом связывания в свойстве MasterField, при втавке записи в мастер таблице методом append, код ключевого поля еще не сгенерирован в этой таблице, а нужно вставить еще запись и в подчиненную (с ней связанную), а потом вместе сохранить или выполнить откат. Ведь кода ключа нет и связки при такой вставке не происходит. Пробовал открывать транзакцию и выполнять Post после вставки записи, но кода ключа так и не появилось. А если запись вставлять с Update, то код ключа будет, но нет возможности выполнить одновременный откат на обе таблицы. Будет выполнен откат только на дочернюю естественно. Если кто сталкивался с такой проблемой, то просьба помочь. Заранее благодарен


 
Smashich ©   (2003-03-07 11:03) [1]

ИМХО такие вещи надо реализовывать через тригерры


 
sniknik ©   (2003-03-07 11:27) [2]

нашол тоже проблему

пишеш пакет команд и выполняеш (как оформить в виде тригера/процедуры/просто текста разници нет)
чтото подобное

ADOCommand.CommandText:=
"BEGIN TRANSACTION "+
"INSERT INTO Table1 (.....) VALUES (......) "+
"INSERT INTO Table2 (IDParent,....) VALUES (@@IDENTITY,......) "+
"COMMIT TRANSACTION";
ADOCommand.Execute;

это если ключ автоикремент, как я понял из вопроса так и есть, в 1 таблице он генерируется при вставке во вторую заносится его значение.


 
AlexGof ©   (2003-03-07 11:39) [3]

А если во вторую таблицу в дочернюю добавляется различное количество записей ?


 
sniknik ©   (2003-03-07 12:00) [4]

да пофиг сколько просто если во второй тоже есть инкремент и выывается не раз то значнение @@IDENTITY собьется, ну сделай переменную и сохрани
DECLARE @Iden Integer

BEGIN TRANSACTION
INSERT INTO Table1 (.....) VALUES (......)
SET @Iden @@IDENTITY
и после ей пользуйся (есть идентити с привязкой таблице можно и его использовать)


 
ermserg ©   (2003-03-07 12:20) [5]

>есть идентити с привязкой таблице можно и его использовать

IDENTITY_CARRENT(tablitsa)



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

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

Наверх




Память: 0.47 MB
Время: 0.017 c
1-87921
San
2003-03-13 17:39
2003.03.27
CHARSET


3-87809
ArtyomW
2003-03-07 23:47
2003.03.27
Сортировка полей


1-87939
Makhanev A.S.
2003-03-16 23:20
2003.03.27
ShellTreeView&ShellListView ...


7-88263
NewGuest
2003-01-27 17:12
2003.03.27
Здраствуйте, по схеме LPT со 2 по 9 пин, являются вых. сигнала...


3-87783
reticon
2003-03-11 11:29
2003.03.27
использование файлов excel