Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите найти ошибку в триггере, я не могу увидеть. Пожалуйста. [MSSQL]


oleon ©   (2002-12-20 17:32:00) 

... почему-то триггер выполняется, но в поле ComoName Ничего не записывается... почему?

CREATE TRIGGER AUDIT_SUBDIV ON tbSubdiv
FOR INSERT
AS
BEGIN
declare @time_now datetime
declare @ID int
declare @CompNAME varchar(50)



select @CompNAME = HOST_NAME()


set @Time_now = getdate()

select @ID = id from inserted


INSERT INTO tbAUDIT(OPERTYPE, TIME_DATE, username, tablename, comp_name, prim_key)
VALUES("I", @time_now, SYSTEM_USER, "tbSubDiv", @CompName, @ID)

END


oleon   (2002-12-23 11:55:00) [1]

все понятно, спасибо...


3JIA9I CyKA   (2002-12-20 21:50:00) [2]

>>Как я теперь понимаю(ну не знал я этого, стыдно, конечно, но
>>просто не сталкивался раньше) в Inserted будет не одна запись
>>и нужно будет последовательно каждую обрабатывать?
см SergSuper (20.12.02 17:41)


oleon   (2002-12-20 18:47:00) [3]

А когда будет добавляться сразу несколько записей, то нужно будет через курсоры все это делать.
Как я теперь понимаю(ну не знал я этого, стыдно, конечно, но просто не сталкивался раньше) в Inserted будет не одна запись и нужно будет последовательно каждую обрабатывать?

вот в InterBase можно было написать
for select .... do
Begin
End


oleon   (2002-12-20 18:24:00) [4]

да я вставляю из своей же программы по одной записи вроде как...

но пока у меня проблемма не с этим, а с тем почему у меня HOST_NAME() ничего не определяет...


3JIA9I CyKA   (2002-12-20 18:14:00) [5]

А с чего Вы взяли, что в insertedодна запись?!


oleon   (2002-12-20 17:54:00) [6]

укоротить согласен, спасибо...

но как же все таки установить имя компьютера можно...

как моя клиентская программа может установить имя компьютера, разве сервер сам автоматически не видит его когда я подключаюсь?


SergSuper   (2002-12-20 17:41:00) [7]

Наверное потому что клиентская программа не устанавливает имя компьютера. Кстати - почему Вы не хотите написать покороче:
CREATE TRIGGER AUDIT_SUBDIV ON tbSubdiv
FOR INSERT
AS
INSERT INTO tbAUDIT(OPERTYPE, TIME_DATE, username, tablename, comp_name, prim_key)
select "I", getdate(), SYSTEM_USER(),"tbSubDiv", HOST_NAME(), id from inserted


Наверх

Титульная страница Поиск, карта сайта Написать письмо