Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Безусловный проброс триггеров из С# приложения ? / 5 сообщений из 5, страница 1 из 1
12.02.2005, 12:33
    #32912832
serkir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Безусловный проброс триггеров из С# приложения ?
Проброс триггеров из С# приложения ( допустимо использование любого из Ado.net клиентов: SqlClient,OleDbClient)

Есть C#, которое закачиват документы в базу Microsoft SqlServer
Кто-нибудь знает способ устроить проброс триггеров ( не должны отрабатывать), навешанных на соответствующую таблицу?
...
Рейтинг: 0 / 0
12.02.2005, 22:47
    #32913100
APM
APM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Безусловный проброс триггеров из С# приложения ?
Вариант 1. (alter table)
Код: plaintext
1.
2.
3.
4.
5.
cmd=new SqlCommand ("alter table tablename disable triger all");
cmd.ExecuteNonQuery();
MyCode(); // Тут закачиваем документы
cmd.CommandText="alter table tablename enable triger all";
cmd.ExecuteNonQuery();

Вариант 2. (таблица индикатор)
В базе
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
-- Вспомогательная таблица с именами отключенных тригеров
create table TableSkipTrigger (triggername sysname)
go
-- Шаблон триггеров подлежащих отключению
create trigger MyTrigger on TableName
begin

if exists (select  1  from TableSkipTrigger where triggername=MyTrigger)

return

else
 (Код Тригера)

end
go
И в коде приложения
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
cmd=new SqlCommand ("insert into TableSkipTrigger  Values (@Tr)");
cmd.parameters.add("@Tr","MyTrigger");
cmd.ExecuteNonQuery();
MyCode(); // Тут закачиваем документы
cmd.CommandText='"delete from TableSkipTrigger   where triggername=@Tr";
cmd.ExecuteNonQuery();

...
Рейтинг: 0 / 0
12.02.2005, 22:50
    #32913101
APM
APM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Безусловный проброс триггеров из С# приложения ?
Откуда кстати такая терминология (проброс да еще и безусловный).

И кстате оба варианта что я привел выше одинаково плохи т.к. если клиентов сотни и один из них отключит тригер на таблице то "попадут" все сто клиентов.

Мне так кажется что необходимость отключать тригеры из клиентского приложения продиктована архитектурными ошибками приложения.
...
Рейтинг: 0 / 0
13.02.2005, 10:07
    #32913191
serkir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Безусловный проброс триггеров из С# приложения ?
APMОткуда кстати такая терминология (проброс да еще и безусловный)
Бог с ней терминологией.. мое изобретение.. тут ключевое "безусловный"
хотелось подчеркнуть.. что триггер не сам пропускает свое "дейcтвие" (твоя идея тоже вращается вокруг этого), а вообще не возбуждается

APM
И кстате оба варианта что я привел выше одинаково плохи т.к. если клиентов сотни и один из них отключит тригер на таблице то "попадут" все сто клиентов.

На форуме Microsoft SqlServer ( куда я тоже кинул этот вопрос) приведена похожая..но более продвинутая идея, лишенная отмеченных недостатков.. изюминка- использование переменной @@SPID

APM
Мне так кажется что необходимость отключать тригеры из клиентского приложения продиктована архитектурными ошибками приложения.
Кто- бы спорил.. но не приложения, а всей системы .. эта "заляпа" как раз и пытается наделить систему функциями, которые не были предусмотрены при ее проектировании. Система разрозлась... менять слишком много.. довольно частая ситуация..Так что "ошибка" в проектировании, входит в условие задачи :)
...
Рейтинг: 0 / 0
13.02.2005, 11:53
    #32913225
APM
APM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Безусловный проброс триггеров из С# приложения ?
Че то не могу понять.
Дык если он такой безусловный - может
Код: plaintext
drop trigger
и вперед?
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Безусловный проброс триггеров из С# приложения ? / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]