Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > как использовать триггер в Delphi


Автор: lamravas 6.8.2008, 10:07
Как использовать в Дельфи триггер.
Ну т.е. куда его вписать и т.п. 
Есть библиотека компонентов MSSDAC

Автор: Frees 6.8.2008, 10:42
из делфи ты его можеш только создать включить или выключить выполняя обычные запросы с помощью query

CREATE OR ALTER TRIGGER <дальше хелп читайте>

Автор: lamravas 6.8.2008, 10:49
т.е. как я понял мне просто запихать этот запрос в обычный query, типо адо query?? с чем этот гуэри связать??

Автор: Frees 6.8.2008, 11:03
Цитата(lamravas @  6.8.2008,  10:49 Найти цитируемый пост)
с чем этот гуэри связать??

с базой строку конекта настроить и выполнять запросы к базе

Автор: lamravas 6.8.2008, 13:10
вот написал триггер по книге "Полное руководство SQL" а он не работает что не так то?

create trigger inserts
on jobs
for update
as if (@@rowcount=1)
begin
insert collection
set inv_id=inserted.invnum
from jobs, inserted
end

Принцип работы триггера:
если в таблице jobs изменено значение invnum то в таблице сollection добавить строку где inv_id=invnum
но триггер не работает, в чем проблема где ошибка. Как правильнее реализовать??

Автор: Frees 7.8.2008, 08:44
Цитата(lamravas @  6.8.2008,  13:10 Найти цитируемый пост)
 а он не работает что не так то?

что значит не работает?

я бы вот так сделал то что ты хочеш
Код

CREATE OR ALTER TRIGGER JOBS_AU FOR JOBS
ACTIVE AFTER UPDATE POSITION 0
AS
BEGIN
 IF (NEW.INVNUM <> OLD.INVNUM)THEN
 BEGIN
      INSERT INTO COLLECTION COL (COL.INV_ID)
      VALUES (OLD.INVNUM) -- или NEW.INVNUM смотря что нужно
 END
END

 ps: для firebird

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)