Právě je neděle 05. září 2010, 07:59

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 5 ] 
Autor Zpráva
 Předmět příspěvku: Vyvolání události odchytitelné v klientském kódu
OdeslatNapsal: pondělí 07. červen 2010, 13:22 
Offline
Pokročilý
Pokročilý
Uživatelský avatar

Registrován: sobota 09. únor 2008, 20:53
Příspěvky: 482
Bydliště: Olomouc
V práci se opět objevil zajímavý úkol. Používáme SQL Server 2005. A požadavek je následující: Jakmile se změní záznam v určité tabulce, spustit Windows službu (Windows service). Respektive služba poběží, a ve službě chci odchytit událost změny tabulky.

Můj první nápad byl ten, že by se ta služba v určitých časových intervalech dívala do tabulky, zda nastaly nějaké změny. Tento postup se má použít jako poslední možnost.

Pak jsem četl něco o Extended Stored Procedures, ale nezdá se mi, že to řeší přesně můj problém. Proto se ptám, zda existuje nějaké elegantní řešení.
Díky.

_________________
http://www.dotnetcesky.blogspot.com - C#, kde knihy nestačí.


Nahoru
 Profil E-mail  
 
 Předmět příspěvku: Re: Vyvolání události odchytitelné v klientském kódu
OdeslatNapsal: pondělí 07. červen 2010, 17:21 
Offline
Pokročilý
Pokročilý

Registrován: čtvrtek 09. červenec 2009, 15:41
Příspěvky: 427
Nevim, o co se presne snazite, ale mozna by se Ti hodilo vyuzit tridu SqlDependency? Pouziva se hlavna na cachovani, ale v podstate vyvola udalost pri zmene dat.

Pokud ne, procti si moznosti SQL Server Service Broker technologie.

_________________
How many Microsoft developers does it take to change a light bulb? None, they just change the standard to darkness.
Obrázek
Having a Cup<T> somewhere...


Nahoru
 Profil E-mail  
 
 Předmět příspěvku: Re: Vyvolání události odchytitelné v klientském kódu
OdeslatNapsal: pondělí 07. červen 2010, 18:02 
Offline
Pokročilý
Pokročilý
Uživatelský avatar

Registrován: sobota 09. únor 2008, 20:53
Příspěvky: 482
Bydliště: Olomouc
Jo jo už o tom čtu. Jde o to, že ve chvíli, kdy dojde ke změně v určité tabulce a v určitém sloupci, potřebuji vykonat několik operací v klientském kódu. Pokud bych měnil data v DB jen skrz tento kód, vůbec bych nepotřeboval nějakou funkčnost na straně DB, ale sám bych si to pohlídal. Ale já potřebuji tyto operace provést i v situaci, kdy někdo změní data přímo v DB (přes SQL Manager apod.).

Teď pročítám, jestli to bude možné přes tu třídu SqlDependency.

EDIT: Ještě dodávám článek, kde je podrobně popsána tato tematika (sice píšou o SqlCacheDependency, ale myslím si, že pro počáteční informace to je velice dobrý článek)

_________________
http://www.dotnetcesky.blogspot.com - C#, kde knihy nestačí.


Nahoru
 Profil E-mail  
 
 Předmět příspěvku: Re: Vyvolání události odchytitelné v klientském kódu
OdeslatNapsal: pondělí 07. červen 2010, 23:19 
Offline
Pokročilý
Pokročilý

Registrován: čtvrtek 09. červenec 2009, 15:41
Příspěvky: 427
Phobos píše:
...SqlDependency? ...ale v podstate vyvola udalost pri zmene dat.

Jeste zduraznim a rozsirim to, co jsem psal - pokud jakkoliv zmenis data v DB (ze C# kodu, SP, COMMIT z jine session, ...), SQL server vyvola udalost a C# kod vyvola Change udalost (resp. CLR sleduje SB queue) u SqlDependency.
Je to IMHO nejjednodussi zpusob jak sledovat zmenu dat v tabulce.

Pokud chces provadet nejake hlubsi sledovani pomoci SB, budes si muset napsat nejake vlastni SB procedurky a vyzvedavat zpravy z fronty.

_________________
How many Microsoft developers does it take to change a light bulb? None, they just change the standard to darkness.
Obrázek
Having a Cup<T> somewhere...


Nahoru
 Profil E-mail  
 
 Předmět příspěvku: Re: Vyvolání události odchytitelné v klientském kódu
OdeslatNapsal: úterý 06. červenec 2010, 23:41 
Offline
Nováček
Nováček

Registrován: pondělí 29. březen 2010, 13:15
Příspěvky: 26
Bydliště: Dubai & Jihlava
Nevim jestli jsem to dobre pochopil, nebo jestli jsi uz to vyresil.

Ale jak jsem ten prespevek cetl neco me napadlo ale nevyskousel jsem to, tak Ti to reknu jak me to napadlo.

ze by jsi udelal trigger v C#, nebotrigger ktery by volal stored procedure v C#. zda se mi ze tady nekdo uz ma v tym praxi tak by nam mohl vysvetli jak to ma byt nebo jeto jen blbost.

Je to jak se to rikam , premisleni nahlas. jestli Te to zajima tak to muzu vyskouset, a reknu Ti jestli je to dobry napad nebo blbej ;-)


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 5 ] 

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 1 návštěvník


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přeskočit na:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Český překlad – phpBB.cz

Google Pagerank - www.dotnetforum.czGoogle Pagerank S-Rank - www.dotnetforum.czS-Rank JyxoRank - www.dotnetforum.czJyxoRank


Valid XHTML 1.0 Transitional