Değişen Kayıt ID'si bulma

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
mcuyan
Üye
Mesajlar: 28
Kayıt: 04 Eki 2010 10:47

Değişen Kayıt ID'si bulma

Mesaj gönderen mcuyan »

Selam Arkadaşlar
FB de replicator tarzı birşey yapmak istiyorum. Örneğin bi tabloda değişentirilen bir alan olduğu zaman bu alanın id sini bulmak istiyorum. Bu konuda bir trigger yazıp başka bi tabloya değişen id yi yazmak ona göre replikasyon yapmak istiyorum ama değişen kaydın id'sini nasıl bulabilrim?
(Affınıza sığınarak Forumlarda bulmadım)
M.Cihan UYAN
SNC Tech&Soft
ikra
Üye
Mesajlar: 900
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Re: Değişen Kayıt ID'si bulma

Mesaj gönderen ikra »

Triggerde new.id yada old.id seklinde degismis olan ve degismeden önceki id numarasini alabilirsin. Id'lerin degistirilebilinir olmasi iyi degil.
kıdemsiz üye
Kullanıcı avatarı
greenegitim
Üye
Mesajlar: 713
Kayıt: 28 Nis 2011 10:33
Konum: İstanbul

Re: Değişen Kayıt ID'si bulma

Mesaj gönderen greenegitim »

Örnek olarak after update e

Kod: Tümünü seç

if (new.konsinyedahilmiktar<> old.konsinyedahilmiktar) then
begin
INSERT INTO DROGON_LOG (DRAGON_LOG_ID, MODELID, MODELKODU, ISLENDIMI1, ISLENDIMI2, LOGTARIHI1, GUNCELLEMETARIHI, ISLEMID)
VALUES (gen_id(gen_drogon_log_id,1), new.id, NEW.modelkodu, 0, 0, current_timestamp, NULL, 3);
end
Mücadele güzelleştirir!
Kullanıcı avatarı
mcuyan
Üye
Mesajlar: 28
Kayıt: 04 Eki 2010 10:47

Re: Değişen Kayıt ID'si bulma

Mesaj gönderen mcuyan »

teşekkürler cevaplar için.
ufacık bi trigger işimiz çözdü.

CREATE OR ALTER TRIGGER URMGRUPD FOR URUNLER
ACTIVE AFTER UPDATE POSITION 0
AS
begin
insert into urmrg (urmrg.mgruid) values (old.UID);
end
M.Cihan UYAN
SNC Tech&Soft
Kullanıcı avatarı
mcuyan
Üye
Mesajlar: 28
Kayıt: 04 Eki 2010 10:47

Re: Değişen Kayıt ID'si bulma

Mesaj gönderen mcuyan »

peki bu kayıt dan varsa eklemesini istemiyırum.
ama aşağıdaki kod yemiyor..

CREATE OR ALTER TRIGGER URMGRUPD FOR URUNLER
ACTIVE AFTER UPDATE POSITION 0
AS
begin
if select count(*) from urmrg where urmrg.mgruid=old.uid)=0 then
insert into urmrg (urmrg.mgruid) values (old.UID);
end
M.Cihan UYAN
SNC Tech&Soft
ikra
Üye
Mesajlar: 900
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Re: Değişen Kayıt ID'si bulma

Mesaj gönderen ikra »

bu durumda stored procedure yazip old.id'yi parametre olarak gönderip islem yaptirabilirsin. Calisma garantisi yüzde yüz.
kıdemsiz üye
Cevapla