PowerDesigner kodlarının firbirde uyumlu hale getirilmesi

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
zalimsevki
Üye
Mesajlar: 38
Kayıt: 02 Ara 2005 07:36
Konum: Denizli

PowerDesigner kodlarının firbirde uyumlu hale getirilmesi

Mesaj gönderen zalimsevki »

PowerDesigner proğramının üretmiş olduğu (Tablo, index, trigger.. vs.) hazır kodlarda firebirde uyumsuz olan düzeltmemiz gereken hatalar nelerdir .. (Mesela çift tırnakların tek tırnakla değiştirilmesi gibi .. )
Yardımlarınız için şimdiden teşekkürler ..
Site ve siteye katkıda bulunan herkes tek kelime ile mükemmel ..
Kullanıcı avatarı
lazio
Moderator
Mesajlar: 1527
Kayıt: 11 Tem 2003 04:55
Konum: İstanbul

Mesaj gönderen lazio »

PowerDesigner ın hangi versiyonunu kullanıyorsunuz? Çünkü PowerDesigner 11 de Database olarak Interbase 6x seçtiğinizde tablo ve indexlerde herhangi bir sorun çıkmıyor.. sadece Trigger ların sonundaki

Kod: Tümünü seç

end;/
set term ;/;
bölümünden end; den sonraki kısmı ayıklamak gerekiyor..

kolay gelsin..
DeveloperToolKit

..::|YeşilMavi|::..
zalimsevki
Üye
Mesajlar: 38
Kayıt: 02 Ara 2005 07:36
Konum: Denizli

Mesaj gönderen zalimsevki »

PowerDesigner 11 in ürettiği triger kodu

set term /;
create trigger ti_tb_etf for TB_ETF
before insert as
declare variable numrows integer;
begin
/* Column "KIM" uses sequence Seq_ETF_KIM */
new.KIM = GEN_ID(Seq_ETF_KIM, 1);
end;/
set term ;/;

firebird database gönderdiğimde hata alıyorum ..
; simgelerinin önündekileri silme gibi pek çok şey denedim ..

IBExpertin oluşturduğu kodları PowerDesignerin sayfasından
gönderiyorum IBExpertin içinden kabul ettiği trigger komutlarında
yine hata veriyor ..Bazen hata mesajı vermesine rağmen triggeri oluşturuyor ..


SET TERM ^ ;

CREATE TRIGGER TI_TB_ETF FOR TB_ETF
ACTIVE BEFORE INSERT POSITION 0
AS
declare variable numrows integer;
begin
/* Column "KIM" uses sequence Seq_ETF_KIM */
new.KIM = GEN_ID(Seq_ETF_KIM, 1);
end

^

SET TERM ; ^

12 saat olmuş aklıma gelen her yolu denedim ..
Lütfen yardım ..[/quote]
Kullanıcı avatarı
ofenX
Üye
Mesajlar: 397
Kayıt: 09 Nis 2005 10:24
Konum: Diyarbakır
İletişim:

Mesaj gönderen ofenX »

Merhaba,
Sizin örneğiniz aşağıdaki gibidir.

Kod: Tümünü seç

set term /;
create trigger ti_tb_etf for TB_ETF
before insert as
declare variable numrows integer;
begin
/* Column "KIM" uses sequence Seq_ETF_KIM */
new.KIM = GEN_ID(Seq_ETF_KIM, 1);
end;/
set term ;/; 

Firebird ün helpindeki bir örnek aşağıdaki gibidir.

Kod: Tümünü seç

CREATE TRIGGER TEST_TRIG FOR TEST
ACTIVE BEFORE INSERT POSITION 0
AS
begin
   if(new.id is null) then
      new.id=gen_id(GLOB_ID,1);
end


bir karşılaştırın. Örneğin firebirde Active diye bir deyim var. sizinkinde yok.
http://www.aysbergbilgisayar.com
Logo Go özel eğitim, web tasarım, teknik servis
zalimsevki
Üye
Mesajlar: 38
Kayıt: 02 Ara 2005 07:36
Konum: Denizli

trigger templates

Mesaj gönderen zalimsevki »

drop exception sdp_icpe;
create exception sdp_icpe 'Parent does not exist. Cannot create child.';
drop exception sdp_itmc;
create exception sdp_itmc 'Maximum cardinality exceeded. Cannot create child.';
/* Insert trigger "%TRIGGER%" for table "%TABLE%" */
set term /;
create trigger %TRIGGER% for %TABLE%
before insert as
declare variable numrows integer;
.DeclInsertParentExist
.DeclInsertTooManyChildren
begin
.InsertChildParentExist
.InsertTooManyChildren
.InsertSequenceColumn
end;/
set term ;/

yukarıda powerDesignerin insert templatesi var .. Bunun gibi update ve delete templatesleride var .. Bu kodlarla çalıştırdığımda Triggerler oluşuyor .. Fakak SQL hatası veriyor.. Yukarıdaki templateste SQL hatasına neden olan yazılım hataları nelerdir ..Kodu çalıştırıp Ignore All yaptığımda triggerler oluşuyor.. Bu templatesleri SQL hatası vermeden kusursuz çalışacak bi hale getirebilirmiyiz .. Ben pek çok deneme yaptım olmadı ..
Kullanıcı avatarı
lazio
Moderator
Mesajlar: 1527
Kayıt: 11 Tem 2003 04:55
Konum: İstanbul

Mesaj gönderen lazio »

daha önceki mesajda da söylediğim gibi set term ;/ ve gereksiz / ları kaldırın..
ayrıca bir kere create edilen exception ları tekrar tekrar drop edip create etmeye gerek yok
DeveloperToolKit

..::|YeşilMavi|::..
Cevapla