Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.11.19;
Скачать: [xml.tar.bz2];

Вниз

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

 
Монг   (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 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.11.19;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.044 c
1-1160348188
zero-g
2006-10-09 02:56
2006.11.19
Создание своих обьектов на форме


2-1161939124
Andrey.Ru
2006-10-27 12:52
2006.11.19
Запуск потока Windows API


4-1152189062
Серге И
2006-07-06 16:31
2006.11.19
Определение температуры на материнской плате с двумя процессорами


15-1162389352
Колдун
2006-11-01 16:55
2006.11.19
Предикаты


2-1162192150
Megabyte
2006-10-30 10:09
2006.11.19
Вопрос по проектированию класса





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский