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

Вниз

Update   Найти похожие ветки 

 
Ш-К   (2002-06-18 09:33) [0]

Имеется таблица, в ней около 100 столбцов. Как мне определить в теле триггера на after update какая ячейка и в какой из строк модифицировалась.


 
Mike_Goblin ©   (2002-06-18 09:46) [1]

Триггер, насколько мне помнится, вызывается для каждой строки
Для столбцов есть конструкция New.<имя столбца>, OLD.<имя столбца>, содержащие старые и новые значения

PS. 100 столбцов - это что же такое там хранится


 
Ш-К   (2002-06-18 10:16) [2]

Просто имеется структура 100х100 (представляю её таблицей). И мне надо определить в триггере (желательно в триггере), какая ячейка модифицировалась.
И как через New.<имя столбца>, OLD.<имя столбца>?


 
Alexandr ©   (2002-06-18 10:19) [3]

if (new.fieldName<>old.fieldname) then


 
Ш-К   (2002-06-18 10:21) [4]

2 Alexandr © (18.06.02 10:19)
И так 100 раз?


 
Alexandr ©   (2002-06-18 10:28) [5]

конечно.
Чудес-то не бывает


 
Desdechado ©   (2002-06-18 10:30) [6]

будет больше колонок, будет больше 100 раз :)
по-другому никак


 
Ш-К   (2002-06-18 10:32) [7]

Ну хорошо, я могу написать для каждого столбца проверку, тем более, что обработка для каждого разная.
А как быть со строкой?


 
Alexandr ©   (2002-06-18 10:38) [8]

какой строкой?


 
Ш-К   (2002-06-18 10:40) [9]

Таблица меняется - хочу определить строку по ключевому полю, которая изменилась.


 
Alexandr ©   (2002-06-18 10:47) [10]

дык триггер и сработает на "строке которая изменилась", ну хочешь заведи еще одно поле, в которое этим же триггером пиши дату изменения.
P.S. а триггер должен быть before Update


 
Ш-К   (2002-06-18 10:59) [11]

Не вьехал.
Допустим таблица имеет поля: keyfild - integer и notkeyfild - float.
В записи с keyfild=51 меняем поле notkeyfild. (из клиента)
Теперь как в триггере before Update определить, что keyfild=51. Это значение нужно передать в ХП.


 
Alexandr ©   (2002-06-18 11:03) [12]

old.keyField
или оно же
new.keyField


 
Ш-К   (2002-06-18 11:07) [13]

Да, что-то я лоханулся.

СЕНКС.


 
Ш-К   (2002-06-18 11:15) [14]

Теперь вопрос в догонку.

Тело триггера, что-то типа:

if (new.field1<>old.field1) then SP1(new.id);
if (new.field2<>old.field2) then SP2(new.id);
if (new.field3<>old.field3) then SP3(new.id);
if (new.field4<>old.field4) then SP4(new.id);
if (new.field5<>old.field5) then SP5(new.id);
........
if (new.fieldN<>old.fieldN) then SPN(new.id);

Т.е. имеется закономерность в названии полей и закономерность в названии ХП.
Можно ли это дело как-нить оптимизировать? Скажем, в цикле.



 
Desdechado ©   (2002-06-18 11:20) [15]

увы :(



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

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

Наверх




Память: 0.49 MB
Время: 0.015 c
14-23723
Sergo
2002-06-04 16:50
2002.07.08
NeuroSolution


7-23821
Chief
2002-04-13 17:20
2002.07.08
Чтение данных с устройства под Windows 2000


3-23469
Jawdet
2002-06-14 20:32
2002.07.08
ADO


14-23771
vads
2002-06-07 23:50
2002.07.08
ПЕРЕПИСЫВАЮ КОМПОНЕНТУ (TDBGrid) - очень надо ???


6-23699
INNOCHENTI
2002-04-23 17:30
2002.07.08
СРОЧНО!!! ЛЮДИ СКАЖИТЕ КАК ПОЛУЧИТЬ IP-адресс(не локального)?