17 Haziran 2013 Pazartesi
Rootlanmış Android telefonla Kies e bağlanabilirite ..
Eveet.. Her ne kadar severek kullanıyor olsam da, artık yaşlı bir telefonum var.. Sık sık yavaşlaması bu yüzden ya da seçtiğim romlardandır belki bilmiyorum ama, sık sık rom yenilemem gerekiyor.. e rom yenilemek demek backup ve restore demek.. custom rom demek kies kullanamamak demek.. hı zorunda mıyım kies e, değilim.. ama yeni bir programa kafamı yorasım gelmedi hiç.. custom romla kies e bağlanma yollarını araştırdım ve buldum..
1. Telefona SuperUser, BusyBox, SpoofFW programlarını yükle
2. SpoofFw programından Backup Al
3. SpoofFw programından preset seçip step2 ye bas.
4. Cihazı yeniden başlat
5. Spooffw de step3 için preset seç
6. step3 e bas
7. Kies e bağlanabiliriten hazır olmalı..
Videosu aşağıda..
http://www.youtube.com/watch?v=y8g-fLX1fnM
Bu da şuan kullandığım ROM:
http://forum.xda-developers.com/showthread.php?t=2001632
Notlarımda bulunsun..
14 Haziran 2013 Cuma
ASP.NET MultiThreading basit kullanımı
Bir önceki postumda paylaştığım triggerlarımda bir sorun yaşayacağımı düşünüp(daha doğrusu müdürüm tarafından düşündürülüp :) ) bu sorunu test etmek için daha önce sadece adını duyduğum multithreading programlamaya başlangıç seviyesinde, basit bir giriş yaptım. Ne işe yaradığını anladım, kullanımı konusunda ise sıkıntı yaşadığımı itiraf etmeliyim.. Hatta ne kadar sıkıldıysam bir ara küçük emraha bağlamış olacağım ki müdürüm duygusal fon müziği de vereyim mi diye yorum yapma gereği duydu saklayamadığım mimiklerime .. :) Neyse kullandım kullanmasına ama hala kullanımı havada benim için..
Durumu özetledikten sonra, önce neden triggerlarımda sorun yaşayabiliritem olduğunu, sonra da bunu multitheadingle nasıl test ettiğimi açıklarım şeklinde yazı algoritmamı kurayım ve yazmaya başlayayım. :)
Triggerlarımda bir tablomda -A tablosu diyeyim- update işlemi yaparken başka bir tablomda -B tablosu diyeyim- daha update işlemi yapan bir trigger var. Ancak B tablosunda da kendine ait bir UPDATE triggerı var. Yani A tablomun UPDATE trigger ı B tablosunun da triggerını tetikliyor,, ben ise bunu istemiyorum. Bu yüzden A tablomdaki triggerda B tablosunun triggerını DISABLE-ENABLE etme yoluna gittim.. Herşey güzel çalışıyor gibi görünüyor. Ancak; ya aynı anda iki tabloya da update işlemi gelirse, B tablosunun triggerını DISABLE ettiğim anda çalışması gerekirken çalışmazsa?
Yukarıdaki paragrafı muhtemelen sadece ben okuyunca anlarım :D Neyse zaten burda ben beneyim..
Sonuç olarak bunu test etmek için ne yapmalı, aynı anda iki update işlemi yapmalı. Aynı anda iki işi yapmak demek multithreading demek. O zaman basit bir multithreading projesi yapıp en kısa yoldan bunu test edelim.
Program olabilecek en basit program. Bir butonum var, butona tıkladığımda sqle iki update işlemi gönderiyor... Kodlarım;
protected void Button1_Click(object sender, EventArgs e)
{
System.Threading.ThreadStart t_baslat1;
System.Threading.ThreadStart t_baslat2;
System.Threading.Thread t1;
System.Threading.Thread t2;
t_baslat1 = new System.Threading.ThreadStart(ThreadA);
t_baslat2 = new System.Threading.ThreadStart(ThreadB);
t1 = new System.Threading.Thread(t_baslat1);
t2 = new System.Threading.Thread(t_baslat2);
t1.Start();
t2.Start();
}
public void ThreadA()
{
Harmony_v3Entities harmono = new Harmony_v3Entities();
var asset = harmono.VDB_ASSETS.Single(p => p.GUID.Equals(new Guid("CD6577C5-9FCF-4B86-974F-D8297EF3C993"))); //grid
asset.PRM0 = "GridMng_Transforming";
harmono.SaveChanges();
}
public void ThreadB()
{
Harmony_v3Entities harmono = new Harmony_v3Entities();
var info = harmono.VDB_ASSET_INFORMATIONS.Single(p =>
p.GUID.Equals(new Guid("B04055CC-B395-4103-9FCC-317DB2DAAE6B")));
info.GUID_USER = Guid.NewGuid();
harmono.SaveChanges();
}
Bu kadar..
Örneği şu linkten aldım, arkadaş diğer blogların aksine çok basit ve eğlenceli anlatmış. Kendisine teşekkürü borç bilirim.. İşte linki:
http://www.ceviz.net/programlama/c-ile-multithreading-programlamaya-giris/
Bir başka faydalı örnek de şuradan indirilebilinir:
http://www.csharpnedir.com/articles/read/?id=584
Bir başka faydalı örnek de şuradan indirilebilinir:
http://www.csharpnedir.com/articles/read/?id=584
İşlemin sonucunda dediğimiz gibi bir trigger çalışmama durumuyla karşılaşmadık.. Arka tarafta ne oluyor ne bitiyor, neden öyle bir sorunla karşılaşmadık bilmiyorum. Bilmek isterdim. Belki daha sonra..
Kolay gelsin bana ve cinlerime :)
INSERT, UPDATE, DELETE Trigger larıyla Samimiyet Kuruşumun Hikayesidir.. :p
Son günlerde daha önce sadece selamlaşmada kaldığım triggerlarla ilişki boyutunda tanışıp sohbet etme safhasına geçtim.. Vallahi intiba iyi..
Trigger ın türkçesi tetikleyici ve gayet de anlaşılır bir çeviri olmuş.. Tablonuza bir işlem yaparken istediğiniz başka bir işlemi tetikletmeye yarayan sql özelliği.. Cümle içinde kullanacak olursak; atıyorum,,"ben A tabloma update çekerken B tabloma da bir insert çek." in sqlcesidir trigger...
Sıfırdan nasıl yapılırı anlatmak gibi bir meziyetim yok maalesef.. Beceremem sanırım.. O yüzden ben yine bencil davranıp sadece kendime yarayayım; lazım olabilir düşüncesiyle yaptığım işleri yapıştırayım direkt.. Belki bu blog işi sarar da günün birinde diğer bloglarda olduğu gibi "tutorial" lar hazırlarım. Keza kendim çok faydalanıyorum o bloglardan. Allah onları yazanlardan, paylaşanlardan razı olsun :)
Asset tablomun triggerları;
USE [Harmony_v3]GO/****** Object: Trigger [dbo].[assetPRM0UpdateTrigger] Script Date: 14.6.2013 09:15:06 ******/SET ANSI_NULLS ON
GOSET QUOTED_IDENTIFIER ONGO-- =============================================-- Author: Monolâra-- Create date: 11.6.2013-- Description: Bir Asset in PRM0 ı güncelleniyorsa; INFO tablosundaki kayıtlardan PRM4ü, güncellenen assetin GUIDsine eşit olanların PRM0 ını da güncellemeye yarar.-- =============================================ALTER TRIGGER [dbo].[assetPRM0UpdateTrigger]ON [dbo].[VDB_ASSETS]AFTER UPDATEASBEGINDECLARE @assetGUID uniqueidentifierDECLARE @newPRM0 nvarchar(max)DECLARE @oldPRM0 nvarchar(max)select @assetGUID = GUID, @oldPRM0 = PRM0 FROM DELETEDselect @assetGUID = GUID, @newPRM0 = PRM0 FROM INSERTED--Eğer ASSET tablosunda PRM0 alanı güncelleniyorsa başlaIF @newPRM0 != @oldPRM0BEGIN--Eğer INFO tablosunda PRM4 ü, güncellenen asset in GUID siyle eşit olan kayıt varsa başlaIF EXISTS(select * from VDB_ASSET_INFORMATIONS where PRM4 = @assetGUID)BEGIN; DISABLE TRIGGER dbo.info_UpdateTrigger ON VDB_ASSET_INFORMATIONS;UPDATE VDB_ASSET_INFORMATIONS SET PRM0 = @newPRM0 WHERE PRM4 = @assetGUID AND PRM1 != 0; ENABLE TRIGGER dbo.info_UpdateTrigger ON VDB_ASSET_INFORMATIONS;ENDENDENDUSE [Harmony_v3]GO/****** Object: Trigger [dbo].[asset_UpdateTrigger] Script Date: 14.6.2013 09:20:32 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO-- =============================================-- Author: Monolâra-- Create date: 12.06.2013-- Description: Update edilen kaydın update edilmeden önceki halini yedeklemeye yarar.--=============================================ALTER TRIGGER [dbo].[asset_UpdateTrigger]ON [dbo].[VDB_ASSETS]AFTER UPDATEASBEGINDECLARE @assetGUID uniqueidentifierDECLARE@oldPRM0 nvarchar(max),@oldPRM1 smallint,@oldPRM2 nvarchar(max),@oldPRM3 nvarchar(max),@oldPRM4 uniqueidentifier,@oldPRM5 nvarchar(max),@oldSUBNODE smallint,@oldSEQUENCE_NO smallint,@oldGUID_SECURITY uniqueidentifier,@oldTIMESTAMP datetime,@oldGUID_USER uniqueidentifier,@oldGUID_PAGE uniqueidentifierSELECT@oldPRM0 = PRM0,@oldPRM1 = PRM1,@oldPRM2 = PRM2,@oldPRM3 = PRM3,@oldPRM4 = PRM4,@oldPRM5 = PRM5,@oldSUBNODE = SUBNODE,@oldSEQUENCE_NO = SEQUENCE_NO,@oldGUID_SECURITY = GUID_SECURITY,@oldTIMESTAMP = TIMESTAMP,@oldGUID_USER = GUID_USER,@oldGUID_PAGE = GUID_PAGEFROM DELETEDselect@assetGUID = GUIDFROM INSERTEDINSERT INTO VDB_ASSETS(GUID, GUID_PARENT, PRM0, PRM1, PRM2, PRM3, PRM4, PRM5, SUBNODE, SEQUENCE_NO, GUID_SECURITY, TIMESTAMP, GUID_USER, GUID_PAGE)VALUES (NEWID(), @assetGUID, @oldPRM0, 0, @oldPRM2, @oldPRM3, @oldPRM4, @oldPRM5, @oldSUBNODE, @oldSEQUENCE_NO, @oldGUID_SECURITY, @oldTIMESTAMP, @oldGUID_USER, @oldGUID_PAGE)ENDUSE [Harmony_v3]GO/****** Object: Trigger [dbo].[assetDeleteTrigger] Script Date: 14.6.2013 09:29:09 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO-- =============================================-- Author: Monolâra-- Create date: 11.06.2013-- Description: Silinen assetin ilintili olduğu diğer kayıtların da silinmesine yarar.-- =============================================ALTER TRIGGER [dbo].[assetDeleteTrigger]ON [dbo].[VDB_ASSETS]AFTER DELETEASBEGINDECLARE @assetGUID uniqueidentifierselect @assetGUID = GUID FROM DELETED-- Eğer silinen kayıtla ilgili INFO tablosunda kayıt varsa onları da silIF EXISTS(select * from VDB_ASSET_INFORMATIONS where PRM4 = @assetGUID or GUID_ASSET = @assetGUID or GUID_TYPE = @assetGUID )BEGINDELETE FROM VDB_ASSET_INFORMATIONS where PRM4 = @assetGUID or GUID_ASSET = @assetGUID or GUID_TYPE = @assetGUIDEND-- Eğer silinen kayıtla ilgili RELATION tablosunda kayıt varsa onları da silIF EXISTS(select * from VDB_ASSET_RELATIONS where GUID_ASSET_X = @assetGUID or GUID_ASSET_Y = @assetGUID)BEGINDELETE FROM VDB_ASSET_RELATIONS where GUID_ASSET_X = @assetGUID or GUID_ASSET_Y = @assetGUIDENDENDUSE [Harmony_v3]GO/****** Object: Trigger [dbo].[subnodeManageTrigger] Script Date: 17.6.2013 09:47:01 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO-- =============================================-- Author: Monolâra-- Create date: 14.06.2013-- Description: Eğer assetin altında eleman varsa SUBNODE = 1, yoksa SUBNODE = 0 yapmaya yarar.-- =============================================ALTER TRIGGER [dbo].[subnodeManageTrigger]ON [dbo].[VDB_ASSETS]AFTER UPDATE, INSERT, DELETEASBEGINDECLARE @assetGUID uniqueidentifierDECLARE @GUID_PARENT uniqueidentifierDECLARE @newPRM1 smallintselect @assetGUID = GUID, @GUID_PARENT = GUID_PARENT FROM DELETEDselect @assetGUID = GUID, @GUID_PARENT = GUID_PARENT, @newPRM1 = PRM1 FROM INSERTED--SUBNODE kontrolü..--Eğer kaydın altında başka kayıt kalmadıysa subnode unu 0 yap.IF NOT EXISTS(SELECT * FROM VDB_ASSETS WHERE GUID_PARENT = @GUID_PARENT AND PRM1 = 1 )BEGIN; DISABLE TRIGGER dbo.asset_UpdateTrigger ON VDB_ASSETS;UPDATE VDB_ASSETS SET SUBNODE=0WHERE GUID = @GUID_PARENT; ENABLE TRIGGER dbo.asset_UpdateTrigger ON VDB_ASSETS;END--Eğer kayıt kaldıysa ve subnode u 1 yap.ELSE IF EXISTS(SELECT * FROM VDB_ASSETS WHERE GUID = @GUID_PARENT AND SUBNODE=0 AND PRM1 = 1 )BEGIN; DISABLE TRIGGER dbo.asset_UpdateTrigger ON VDB_ASSETS;UPDATE VDB_ASSETS SET SUBNODE=1WHERE GUID = @GUID_PARENT AND PRM1 = 1; ENABLE TRIGGER dbo.asset_UpdateTrigger ON VDB_ASSETS;ENDEND
USE [Harmony_v3]
GO
/****** Object: Trigger [dbo].[assetVirtualDeleteManageTrigger] Script Date: 17.6.2013 10:53:12 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: Monolâra
-- Create date: 14.06.2013
-- Description: Sanal olarak silinen ya da aktifleştirilen asset kaydının ilintili olduğu diğer kayıtları da sanal olarak silinip aktifleştirilmesine yarar..
-- =============================================
ALTER TRIGGER [dbo].[assetVirtualDeleteManageTrigger]
ON [dbo].[VDB_ASSETS]
AFTER UPDATE
AS
BEGIN
DECLARE @assetGUID uniqueidentifier
DECLARE @oldPRM1 smallint
DECLARE @newPRM1 smallint
select @assetGUID = GUID, @oldPRM1 = PRM1 FROM DELETED
select @assetGUID = GUID, @newPRM1 = PRM1 FROM INSERTED
IF @newPRM1 = -1
BEGIN
-- Eğer sanal silinen kayıtla ilgili INFO tablosunda kayıt varsa onları da sanal olarak sil
IF EXISTS(select * from VDB_ASSET_INFORMATIONS where PRM4 = @assetGUID or GUID_ASSET = @assetGUID or GUID_TYPE = @assetGUID )
BEGIN
; DISABLE TRIGGER dbo.info_UpdateTrigger ON VDB_ASSET_INFORMATIONS;
UPDATE VDB_ASSET_INFORMATIONS SET PRM1 = -1
WHERE PRM4 = @assetGUID or GUID_ASSET = @assetGUID or GUID_TYPE = @assetGUID
; ENABLE TRIGGER dbo.info_UpdateTrigger ON VDB_ASSET_INFORMATIONS;
END
-- Eğer sanal silinen kayıtla ilgili RELATION tablosunda kayıt varsa onları da sanal olarak sil
IF EXISTS(select * from VDB_ASSET_RELATIONS where GUID_ASSET_X = @assetGUID or GUID_ASSET_Y = @assetGUID)
BEGIN
; DISABLE TRIGGER dbo.rel_UpdateTrigger ON VDB_ASSET_RELATIONS;
UPDATE VDB_ASSET_RELATIONS SET PRM1 = -1
WHERE GUID_ASSET_X = @assetGUID or GUID_ASSET_Y = @assetGUID
; ENABLE TRIGGER dbo.rel_UpdateTrigger ON VDB_ASSET_RELATIONS;
END
END
IF @newPRM1 = 1
BEGIN
-- Eğer aktifleştirilen kayıtla ilgili INFO tablosunda kayıt varsa onları da aktifleştir
IF EXISTS(select * from VDB_ASSET_INFORMATIONS where PRM4 = @assetGUID or GUID_ASSET = @assetGUID or GUID_TYPE = @assetGUID )
BEGIN
; DISABLE TRIGGER dbo.info_UpdateTrigger ON VDB_ASSET_INFORMATIONS;
UPDATE VDB_ASSET_INFORMATIONS SET PRM1 = 1
WHERE PRM4 = @assetGUID or GUID_ASSET = @assetGUID or GUID_TYPE = @assetGUID
; ENABLE TRIGGER dbo.info_UpdateTrigger ON VDB_ASSET_INFORMATIONS;
END
-- Eğer aktifleştirilen kayıtla ilgili RELATION tablosunda kayıt varsa onları da aktifleştir
IF EXISTS(select * from VDB_ASSET_RELATIONS where GUID_ASSET_X = @assetGUID or GUID_ASSET_Y = @assetGUID)
BEGIN
; DISABLE TRIGGER dbo.rel_UpdateTrigger ON VDB_ASSET_RELATIONS;
UPDATE VDB_ASSET_RELATIONS SET PRM1 = 1
WHERE GUID_ASSET_X = @assetGUID or GUID_ASSET_Y = @assetGUID
; ENABLE TRIGGER dbo.rel_UpdateTrigger ON VDB_ASSET_RELATIONS;
END
END
END
İnfo Tablomun Triggerları
USE [Harmony_v3]GO/****** Object: Trigger [dbo].[info_UpdateTrigger] Script Date: 14.6.2013 09:52:46 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO-- =============================================-- Author: Monolâra-- Create date: 12.06.2013-- Description: Update edilen kaydın update edilmeden önceki halini yedeklemeye yarar.-- =============================================ALTER TRIGGER [dbo].[info_UpdateTrigger]ON [dbo].[VDB_ASSET_INFORMATIONS]AFTER UPDATEASBEGINDECLARE@oldGUID_ASSET uniqueidentifier,@oldGUID_TYPE uniqueidentifier,@oldPRM0 nvarchar(max),@oldPRM1 smallint,@oldPRM2 nvarchar(max),@oldPRM3 nvarchar(max),@oldPRM4 uniqueidentifier,@oldPRM5 nvarchar(max),@oldSUBNODE smallint,@oldSEQUENCE_NO smallint,@oldGUID_SECURITY uniqueidentifier,@oldTIMESTAMP datetime,@oldGUID_LANGUAGE uniqueidentifier,@oldGUID_USER uniqueidentifier,@oldGUID_PAGE uniqueidentifierDECLARE @infoGUID uniqueidentifierSELECT@oldGUID_ASSET = GUID_ASSET,@oldGUID_TYPE = GUID_TYPE,@oldPRM0 = PRM0,@oldPRM1 = PRM1,@oldPRM2 = PRM2,@oldPRM3 = PRM3,@oldPRM4 = PRM4,@oldPRM5 = PRM5,@oldSUBNODE = SUBNODE,@oldSEQUENCE_NO = SEQUENCE_NO,@oldGUID_SECURITY = GUID_SECURITY,@oldTIMESTAMP = TIMESTAMP,@oldGUID_LANGUAGE = GUID_LANGUAGE,@oldGUID_USER = GUID_USER,@oldGUID_PAGE = GUID_PAGEFROM DELETEDselect@infoGUID = GUIDFROM INSERTEDINSERT INTO VDB_ASSET_INFORMATIONS(GUID, GUID_PARENT, GUID_ASSET, GUID_TYPE, PRM0, PRM1, PRM2, PRM3, PRM4, PRM5, SUBNODE, SEQUENCE_NO, GUID_SECURITY, TIMESTAMP, GUID_USER, GUID_LANGUAGE, GUID_PAGE)VALUES (NEWID(), @infoGUID, @oldGUID_ASSET, @oldGUID_TYPE, @oldPRM0, 0, @oldPRM2, @oldPRM3, @oldPRM4, @oldPRM5, @oldSUBNODE, @oldSEQUENCE_NO, @oldGUID_SECURITY, @oldTIMESTAMP, @oldGUID_USER, @oldGUID_LANGUAGE, @oldGUID_PAGE)END
Relation tablomun triggerları
USE [Harmony_v3]GO/****** Object: Trigger [dbo].[rel_UpdateTrigger] Script Date: 14.6.2013 09:55:48 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO-- =============================================-- Author: Monolâra-- Create date: 12.06.2013-- Description: Update edilen kaydın update edilmeden önceki halini yedeklemeye yarar.-- =============================================ALTER TRIGGER [dbo].[rel_UpdateTrigger]ON [dbo].[VDB_ASSET_RELATIONS]AFTER UPDATEASBEGINDECLARE@oldGUID_ASSET_X uniqueidentifier,@oldGUID_RELATION_TYPE uniqueidentifier,@oldGUID_ASSET_Y uniqueidentifier,@oldPRM1 smallint,@oldPRM2 nvarchar(max),@oldPRM3 nvarchar(max),@oldPRM4 uniqueidentifier,@oldPRM5 nvarchar(max),@oldSUBNODE smallint,@oldSEQUENCE_NO smallint,@oldGUID_SECURITY uniqueidentifier,@oldTIMESTAMP datetime,@oldGUID_USER uniqueidentifier,@oldGUID_PAGE uniqueidentifierDECLARE@newTIMESTAMP datetimeSELECT@oldGUID_ASSET_X = GUID_ASSET_X,@oldGUID_RELATION_TYPE = GUID_RELATION_TYPE,@oldGUID_ASSET_Y = GUID_ASSET_Y,@oldPRM1 = PRM1,@oldPRM2 = PRM2,@oldPRM3 = PRM3,@oldPRM4 = PRM4,@oldPRM5 = PRM5,@oldSUBNODE = SUBNODE,@oldSEQUENCE_NO = SEQUENCE_NO,@oldGUID_SECURITY = GUID_SECURITY,@oldTIMESTAMP = TIMESTAMP,@oldGUID_USER = GUID_USER,@oldGUID_PAGE = GUID_PAGEFROM DELETEDSELECT @newTIMESTAMP = TIMESTAMP FROM INSERTEDIF @oldTIMESTAMP != @newTIMESTAMPBEGININSERT INTO VDB_ASSET_RELATIONS(GUID, GUID_ASSET_X, GUID_RELATION_TYPE, GUID_ASSET_Y, PRM1, PRM2, PRM3, PRM4, PRM5, SUBNODE, SEQUENCE_NO, GUID_SECURITY, TIMESTAMP, GUID_USER, GUID_PAGE)VALUES (NEWID(), @oldGUID_ASSET_X, @oldGUID_RELATION_TYPE, @oldGUID_ASSET_Y, 0, @oldPRM2, @oldPRM3, @oldPRM4, @oldPRM5, @oldSUBNODE, @oldSEQUENCE_NO, @oldGUID_SECURITY, @oldTIMESTAMP, @oldGUID_USER, @oldGUID_PAGE)ENDENDUSE [Harmony_v3]GO/****** Object: Trigger [dbo].[rel_subnodeManageTrigger] Script Date: 17.6.2013 10:49:39 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO-- =============================================-- Author: Monolâra-- Create date: 17.06.2013-- Description: Relation tablosunda SUBNODE kontrolü yapmaya yarar. Eğer altında eleman varsa SUBNODE=1, yoksa SUBNODE=0...-- =============================================ALTER TRIGGER [dbo].[rel_subnodeManageTrigger]ON [dbo].[VDB_ASSET_RELATIONS]AFTER UPDATE, INSERT, DELETEASBEGINDECLARE @relationTypeId uniqueidentifierDECLARE @X_ID uniqueidentifierDECLARE @newSUBNODE intDECLARE @newPRM1 intselect @relationTypeId = GUID_RELATION_TYPE, @X_ID = GUID_ASSET_X FROM DELETEDselect @relationTypeId = GUID_RELATION_TYPE, @X_ID = GUID_ASSET_X, @newPRM1 = PRM1 FROM INSERTEDIF NOT EXISTS(select * from VDB_ASSET_RELATIONS where GUID_RELATION_TYPE=@relationTypeId and PRM1 = 1 and GUID_ASSET_X = @X_ID)BEGIN; DISABLE TRIGGER dbo.rel_UpdateTrigger ON VDB_ASSET_RELATIONS;UPDATE VDB_ASSET_RELATIONS SET SUBNODE = 0 WHERE GUID_ASSET_Y = @X_ID AND GUID_RELATION_TYPE=@relationTypeId AND PRM1 = 1 AND SUBNODE = 1; ENABLE TRIGGER dbo.rel_UpdateTrigger ON VDB_ASSET_RELATIONS;END--Aktif kayıt varsaELSEBEGIN; DISABLE TRIGGER dbo.rel_UpdateTrigger ON VDB_ASSET_RELATIONS;UPDATE VDB_ASSET_RELATIONS SET SUBNODE = 1 WHERE GUID_ASSET_Y = @X_ID AND GUID_RELATION_TYPE=@relationTypeId AND PRM1 = 1 AND SUBNODE = 0; ENABLE TRIGGER dbo.rel_UpdateTrigger ON VDB_ASSET_RELATIONS;ENDEND
Şimdilik bu kadar..
Bu triggerlarla samimiyeti ilerletip nimetlerinden daha çok faydalananlar çok bloglardan gördüğüm kadarıyla.. Ben de sevdim aslında ama daha çok triggerlarla, sqllerle samimi olursam WCF sevgilim kızar,, asıl onu tanımam lazım.. :( Bilmiyorum bu ilişki nereye gider,, çünkü daha security olayını bile anlamadııım...
Kaydol:
Kayıtlar (Atom)