Вниз
Скачать: CL | DM;

Глюк с удалением   Найти похожие ветки 

← →
Монг   (2006-10-30 13:39) [0]

У меня есть 2 таблицы на mssql сервере. Связь между ними один ко многим. При удалении из одной таблицы записи в моей програме, должны удаляться автоматичиски записи из второй таблицы, которые к ней привязаны через ключевое поле, записей может быть несколько. Повесил я тригер на эту таблицу, который срабатывает на удаление. После того как я повесил тригер,в програме стала выдаваться ошибка "Недостаточные или неполные сведенья о ключевом поле, обновление влияет на слишком большое количевство записей". Причём работает всё как надо, нужные записи удаляються, а только генерируеться ошибка. Почему она вылизает и как от неё избавиться ? Можно её конечно обработать, но это наверное криво ?


← →
sniknik ©   (2006-10-30 14:05) [1]

> Почему она вылизает и как от неё избавиться ?
RecordAffected(по названю ADO, для mssql @@ROWCOUNT) в тригере сбивается, ожидается что измениться 1 запись, а у тебя последнее изменение влияет на много записей (возможно не только изза триггера а изза отсутствия ключа например).

сделай нормально на FOREIGN KEY Constraints.


← →
Монг   (2006-10-30 14:34) [2]

А можно поконкретней как это сделать ?


← →
sniknik ©   (2006-10-30 14:46) [3]

нет. нет "конкретной" информации в вопросе, без которой(проверки) это всего лиш догадка... а расписывать догадки это замороченно.
но даже если бы и была, все одно BOL это более полно распишет чем я (и главное без малейших усилий с моей стороны ;о))).


← →
DiamondShark ©   (2006-10-30 15:28) [4]


> Почему она вылизает и как от неё избавиться ?

потому что оператор в триггере возвращает счётчик строк.

избавиться -- либо добавить в триггер команду
SET NOCOUNT ON
либо, действительно, сделать FOREIGN KEY с каскадным удалением (если сервер 2000 и выше, в 7.0 каскадного удаления нет).


← →
Монг   (2006-10-31 06:56) [5]

>потому что оператор в триггере возвращает счётчик строк.

>избавиться -- либо добавить в триггер команду
>SET NOCOUNT ON

Большое спасибо помогло )



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.065 c
2-1162313990
Ezorcist
2006-10-31 19:59
2006.11.19
Проблемы с формой в dll :(


2-1162398499
vain
2006-11-01 19:28
2006.11.19
Перерисовка (Repaint и др.)


15-1161927735
nikolay_sch
2006-10-27 09:42
2006.11.19
Сколько может стоить написать программу???


15-1162385965
kick
2006-11-01 15:59
2006.11.19
Наследник от TForm запустить не могу :) :)


15-1162183263
Slider007
2006-10-30 07:41
2006.11.19
С днем рождения ! 29 октября




   Наверх