tablo yapısı ve stored procedure durumu

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ı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

tablo yapısı ve stored procedure durumu

Mesaj gönderen bobasturk »

merhaba,

firebird kullanıyorum ve bir aidat ile kasa takip programı yapmaya çalışıyorum. kasa takip kısmında bir sorunum oldu sorun aslında sp kısmında ama tablo yapısı ile bağlantılı gibi geliyor. kasa için tablo yapılarım şöyle;

bina tanımlama tablosu:

Kod: Tümünü seç

CREATE TABLE BINA_BILGISI (
    BINA_KAYIT_NO  INTEGER NOT NULL,
    BINA_ADI       VARCHAR(50) NOT NULL,
    ADRESI         VARCHAR(100),
    PARSEL_NO      VARCHAR(25),
    KAT_SAYISI     INTEGER DEFAULT 0,
    DAIRE_SAYISI   INTEGER DEFAULT 0,
    YONETICI       VARCHAR(50),
    GOREVLI        VARCHAR(50),
    YONETICI_TEL   VARCHAR(25),
    GOREVLI_TEL    VARCHAR(25)
);
bina gelir tablosu:

Kod: Tümünü seç

CREATE TABLE BINA_GELIR (
    IDNO           INTEGER NOT NULL,
    BINA_KAYIT_NO  INTEGER NOT NULL,
    DONEM          INTEGER DEFAULT 0 NOT NULL,
    GELIR_TURU     VARCHAR(50) NOT NULL,
    GELIR_TARIHI   DATE DEFAULT 'NOW' NOT NULL,
    GELIR_TUTARI   FLOAT NOT NULL
);
bina gider tablosu:

Kod: Tümünü seç

CREATE TABLE BINA_GIDER (
    IDNO           INTEGER NOT NULL,
    BINA_KAYIT_NO  INTEGER NOT NULL,
    DONEM          INTEGER NOT NULL,
    GIDER_TURU     VARCHAR(50) NOT NULL,
    GIDER_TARIHI   DATE DEFAULT 'NOW' NOT NULL,
    GIDER_TUTARI   FLOAT NOT NULL,
    FAT_MAK_NO     VARCHAR(50),
    FIRMA_KISI     VARCHAR(50)
);
bina gelir gider tablosu:

Kod: Tümünü seç

CREATE TABLE BINA_GELIR_GIDER (
    BINA_KAYIT_NO  INTEGER NOT NULL,
    DONEM          INTEGER DEFAULT 0 NOT NULL,
    GELIR_TOPLAMI  FLOAT DEFAULT 0 NOT NULL,
    GIDER_TOPLAMI  FLOAT DEFAULT 0 NOT NULL,
    KASA           FLOAT DEFAULT 0 NOT NULL
);

bu tablolarda bina kayıt no ve dönem ile sp ve triger vasıtası ile gelir gider ve kasa alanlarına insert+delete+update işlemlerini yaptırıyorum.

sorunum şu bu kısımdaki sp ler anormal çalışıyor. gelir kısmında veri girişini yapınca bina gelir gider tablosuna işliyor. ardından gider kısmına giriş yapıyorum ve bunuda gelir gider tablosuna işliyor. buraya kadar işlem normal. ama gider kısmına yaptığım girişi sildiğimde işlemi geri alacağına gelir gider tablosunda bulunan tüm kayıtları siliyor.

burada bina bilgisi tablosunda sadece BİNA KAYIT NO alanım var diğer tablolarımda BİNA KAYIT NO ve DÖNEM alanları var. sp ve trigerler bu iki alana göre işlem yapıyor. burası kafama takılıyor sorun buradamıdır yoksa yazılar sp lerdemi. aynı sp leri aidat takip kısmında kullanıyorum sorun yok bu konuda yardımcı olursanız sevinirim. sp leri buraya yazmak baya sayfayı uzatacak gerekirse vt yi gönderebilirim. bu konuyu öğrenmek benim için baya önemli teşekkür eder saygılar sunarım

kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Hocam SP ler olmayınca yapılan hatayı çözmemiz çok zor. Tahminen silme şartında bir eksiklik olabilir.. Ayrıca Trigger ve SP lerin birbirlerini etkileme olayını da düşünmen lazım :wink:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

sp leri ve trigerleri yazma sayfada baya yer kaplayacağı için yazmamıştım yazıp göndereceğim ustam.
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

Kod: Tümünü seç

CREATE PROCEDURE SPD_BINA_GELIR1 (
    BINA_KAYIT_NO INTEGER,
    DONEM INTEGER,
    GELIR_TUTARI FLOAT)
AS
begin
  update BINA_GELIR_GIDER set
    GELIR_TOPLAMI = GELIR_TOPLAMI-:GELIR_TUTARI where
    BINA_KAYIT_NO=:BINA_KAYIT_NO AND DONEM = :DONEM;
  delete from BINA_GELIR_GIDER
    where BINA_KAYIT_NO=:bina_kayit_no AND DONEM=:DONEM AND
    GELIR_TOPLAMI=0;
end

Kod: Tümünü seç

CREATE PROCEDURE SPD_BINA_GELIR2 (
    BINA_KAYIT_NO INTEGER,
    DONEM INTEGER,
    GELIR_TUTARI FLOAT)
AS
begin
  update BINA_GELIR_GIDER set
    KASA = KASA-:GELIR_TUTARI where
    BINA_KAYIT_NO=:BINA_KAYIT_NO AND DONEM = :DONEM;
  delete from BINA_GELIR_GIDER
    where BINA_KAYIT_NO=:bina_kayit_no AND DONEM=:DONEM AND
    GELIR_TOPLAMI=0;
end

Kod: Tümünü seç

CREATE PROCEDURE SPD_BINA_GIDER1 (
    BINA_KAYIT_NO INTEGER,
    DONEM INTEGER,
    GIDER_TUTARI FLOAT)
AS
begin
  update BINA_GELIR_GIDER set
    GIDER_TOPLAMI = GIDER_TOPLAMI-:GIDER_TUTARI where
    BINA_KAYIT_NO=:BINA_KAYIT_NO AND DONEM = :DONEM;
  delete from BINA_GELIR_GIDER
    where BINA_KAYIT_NO=:bina_kayit_no AND DONEM=:DONEM AND
    GIDER_TOPLAMI=0;
end

Kod: Tümünü seç

CREATE PROCEDURE SPD_BINA_GIDER2 (
    BINA_KAYIT_NO INTEGER,
    DONEM INTEGER,
    GIDER_TUTARI FLOAT)
AS
begin
  update BINA_GELIR_GIDER set
    KASA = KASA+:GIDER_TUTARI where
    BINA_KAYIT_NO=:BINA_KAYIT_NO AND DONEM = :DONEM;
  delete from BINA_GELIR_GIDER
    where BINA_KAYIT_NO=:bina_kayit_no AND DONEM=:DONEM AND
    GIDER_TOPLAMI=0;
end

Kod: Tümünü seç

CREATE PROCEDURE SPI_BINA_GELIR1 (
    BINA_KAYIT_NO INTEGER,
    DONEM INTEGER,
    GELIR_TUTARI FLOAT)
AS
DECLARE VARIABLE DLR_KAYIT_SAYISI INTEGER;
begin
  select count(*)
  from BINA_GELIR_GIDER where BINA_KAYIT_NO = :BINA_KAYIT_NO AND DONEM=:DONEM
  INTO DLR_KAYIT_SAYISI;
  if (DLR_KAYIT_SAYISI=0) then
    insert into BINA_GELIR_GIDER(BINA_KAYIT_NO, DONEM, GELIR_TOPLAMI)
    values(:BINA_KAYIT_NO, :DONEM,0);
  update BINA_GELIR_GIDER set
    GELIR_TOPLAMI = GELIR_TOPLAMI+:GELIR_TUTARI where
    BINA_KAYIT_NO = :BINA_KAYIT_NO AND DONEM=:DONEM;
End

Kod: Tümünü seç

CREATE PROCEDURE SPI_BINA_GELIR2 (
    BINA_KAYIT_NO INTEGER,
    DONEM INTEGER,
    GELIR_TUTARI FLOAT)
AS
DECLARE VARIABLE DLR_KAYIT_SAYISI INTEGER;
begin
  select count(*)
  from BINA_GELIR_GIDER where BINA_KAYIT_NO = :BINA_KAYIT_NO AND DONEM=:DONEM
  INTO DLR_KAYIT_SAYISI;
  if (DLR_KAYIT_SAYISI=0) then
    insert into BINA_GELIR_GIDER(BINA_KAYIT_NO, DONEM, KASA)
    values(:BINA_KAYIT_NO, :DONEM,0);
  update BINA_GELIR_GIDER set
    KASA = KASA+:GELIR_TUTARI where
    BINA_KAYIT_NO = :BINA_KAYIT_NO AND DONEM=:DONEM;
End

Kod: Tümünü seç

CREATE PROCEDURE SPI_BINA_GIDER1 (
    BINA_KAYIT_NO INTEGER,
    DONEM INTEGER,
    GIDER_TUTARI FLOAT)
AS
DECLARE VARIABLE DLR_KAYIT_SAYISI INTEGER;
begin
  select count(*)
  from BINA_GELIR_GIDER where BINA_KAYIT_NO = :BINA_KAYIT_NO AND DONEM=:DONEM
  INTO DLR_KAYIT_SAYISI;
  if (DLR_KAYIT_SAYISI=0) then
    insert into BINA_GELIR_GIDER(BINA_KAYIT_NO, DONEM, GIDER_TOPLAMI)
    values(:BINA_KAYIT_NO, :DONEM,0);
  update BINA_GELIR_GIDER set
    GIDER_TOPLAMI = GIDER_TOPLAMI+:GIDER_TUTARI where
    BINA_KAYIT_NO = :BINA_KAYIT_NO AND DONEM=:DONEM;
End

Kod: Tümünü seç

CREATE PROCEDURE SPI_BINA_GIDER2 (
    BINA_KAYIT_NO INTEGER,
    DONEM INTEGER,
    GIDER_TUTARI FLOAT)
AS
DECLARE VARIABLE DLR_KAYIT_SAYISI INTEGER;
begin
  select count(*)
  from BINA_GELIR_GIDER where BINA_KAYIT_NO = :BINA_KAYIT_NO AND DONEM=:DONEM
  INTO DLR_KAYIT_SAYISI;
  if (DLR_KAYIT_SAYISI=0) then
    insert into BINA_GELIR_GIDER(BINA_KAYIT_NO, DONEM, KASA)
    values(:BINA_KAYIT_NO, :DONEM,0);
  update BINA_GELIR_GIDER set
    KASA = KASA-:GIDER_TUTARI where
    BINA_KAYIT_NO = :BINA_KAYIT_NO AND DONEM=:DONEM;
End
bunlar sp lerim
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

bunlar trigerlerim

Kod: Tümünü seç

CREATE TRIGGER TD_BINA_BILGISI FOR BINA_BILGISI
ACTIVE AFTER DELETE POSITION 0
AS
DECLARE VARIABLE numrows INTEGER;
BEGIN
    select count(*)
      from BINA_GIDER
      where        BINA_GIDER.BINA_KAYIT_NO = OLD.BINA_KAYIT_NO  into numrows;
    IF (numrows > 0) THEN
    BEGIN
      EXCEPTION ERWIN_PARENT_DELETE_RESTRICT;
    END
    select count(*)
      from BINA_GELIR
      where
        BINA_GELIR.BINA_KAYIT_NO = OLD.BINA_KAYIT_NO  into numrows;
    IF (numrows > 0) THEN
    BEGIN
      EXCEPTION ERWIN_PARENT_DELETE_RESTRICT;
    END
END

*************************************************


CREATE TRIGGER TD_BINA_GELIR1 FOR BINA_GELIR
ACTIVE AFTER DELETE POSITION 0
AS
BEGIN
execute procedure SPD_BINA_GELIR1 OLD.BINA_KAYIT_NO, OLD.DONEM, OLD.GELIR_TUTARI;
END

***************************************************

CREATE TRIGGER TD_BINA_GELIR2 FOR BINA_GELIR
ACTIVE AFTER DELETE POSITION 0
AS
BEGIN
execute procedure SPD_BINA_GELIR2 OLD.BINA_KAYIT_NO, OLD.DONEM, OLD.GELIR_TUTARI;
END

**********************************************************

CREATE TRIGGER TD_BINA_GIDER1 FOR BINA_GIDER
ACTIVE AFTER DELETE POSITION 0
AS
BEGIN
execute procedure SPD_BINA_GIDER1 OLD.BINA_KAYIT_NO, OLD.DONEM, OLD.GIDER_TUTARI;
END

**********************************************************

CREATE TRIGGER TD_BINA_GIDER2 FOR BINA_GIDER
ACTIVE AFTER DELETE POSITION 0
AS
BEGIN
execute procedure SPD_BINA_GIDER2 OLD.BINA_KAYIT_NO, OLD.DONEM, OLD.GIDER_TUTARI;
END

********************************************************

CREATE TRIGGER TI_BINA_GELIR1 FOR BINA_GELIR
ACTIVE AFTER INSERT POSITION 0
AS
DECLARE VARIABLE numrows INTEGER;
BEGIN
    select count(*)
      from BINA_BILGISI
      where      NEW.BINA_KAYIT_NO = BINA_BILGISI.BINA_KAYIT_NO  into numrows;
    IF (      numrows = 0    ) THEN
    BEGIN
      EXCEPTION ERWIN_CHILD_INSERT_RESTRICT;
    END
    Execute procedure SPI_BINA_GELIR1 NEW.BINA_KAYIT_NO, NEW.DONEM, NEW.GELIR_TUTARI;
END

*******************************************

CREATE TRIGGER TI_BINA_GELIR2 FOR BINA_GELIR
ACTIVE AFTER INSERT POSITION 0
AS
DECLARE VARIABLE numrows INTEGER;
BEGIN
    select count(*)
      from BINA_BILGISI
      where      NEW.BINA_KAYIT_NO = BINA_BILGISI.BINA_KAYIT_NO  into numrows;
    IF (      numrows = 0    ) THEN
    BEGIN
      EXCEPTION ERWIN_CHILD_INSERT_RESTRICT;
    END
    Execute procedure SPI_BINA_GELIR2 NEW.BINA_KAYIT_NO, NEW.DONEM, NEW.GELIR_TUTARI;
END

***************************************

CREATE TRIGGER TI_BINA_GIDER1 FOR BINA_GIDER
ACTIVE AFTER INSERT POSITION 0
AS
DECLARE VARIABLE numrows INTEGER;
BEGIN
    select count(*)
      from BINA_BILGISI
      where      NEW.BINA_KAYIT_NO = BINA_BILGISI.BINA_KAYIT_NO  into numrows;
    IF (      numrows = 0    ) THEN
    BEGIN
      EXCEPTION ERWIN_CHILD_INSERT_RESTRICT;
    END
    Execute procedure SPI_BINA_GIDER1 NEW.BINA_KAYIT_NO, NEW.DONEM, NEW.GIDER_TUTARI;
END

*************************************

CREATE TRIGGER TI_BINA_GIDER2 FOR BINA_GIDER
ACTIVE AFTER INSERT POSITION 0
AS
DECLARE VARIABLE numrows INTEGER;
BEGIN
    select count(*)
      from BINA_BILGISI
      where      NEW.BINA_KAYIT_NO = BINA_BILGISI.BINA_KAYIT_NO  into numrows;
    IF (      numrows = 0    ) THEN
    BEGIN
      EXCEPTION ERWIN_CHILD_INSERT_RESTRICT;
    END
    Execute procedure SPI_BINA_GIDER2 NEW.BINA_KAYIT_NO, NEW.DONEM, NEW.GIDER_TUTARI;
END

*************************************

CREATE TRIGGER TU_BINA_BILGISI FOR BINA_BILGISI
ACTIVE AFTER UPDATE POSITION 0
AS
DECLARE VARIABLE numrows INTEGER;
BEGIN
  IF    (OLD.BINA_KAYIT_NO <> NEW.BINA_KAYIT_NO) THEN
  BEGIN
    update BINA_GIDER
      set    BINA_GIDER.BINA_KAYIT_NO = NEW.BINA_KAYIT_NO
      where        BINA_GIDER.BINA_KAYIT_NO = OLD.BINA_KAYIT_NO;
  END
  IF    (OLD.BINA_KAYIT_NO <> NEW.BINA_KAYIT_NO) THEN
  BEGIN
    update BINA_GELIR
      set    BINA_GELIR.BINA_KAYIT_NO = NEW.BINA_KAYIT_NO
      where      BINA_GELIR.BINA_KAYIT_NO = OLD.BINA_KAYIT_NO;
  END
END

*********************************

CREATE TRIGGER TU_BINA_GELIR1 FOR BINA_GELIR
ACTIVE AFTER UPDATE POSITION 0
AS
DECLARE VARIABLE numrows INTEGER;
BEGIN
  select count(*)
    from BINA_BILGISI
    where      NEW.BINA_KAYIT_NO = BINA_BILGISI.BINA_KAYIT_NO into numrows;
  IF (   numrows = 0  ) THEN
  BEGIN
    EXCEPTION ERWIN_CHILD_UPDATE_RESTRICT;
  END
  execute procedure SPD_BINA_GELIR1 OLD.BINA_KAYIT_NO, OLD.DONEM, OLD.GELIR_TUTARI;
  execute procedure SPD_BINA_GELIR1 NEW.BINA_KAYIT_NO, NEW.DONEM, NEW.GELIR_TUTARI;
END

**************************************

CREATE TRIGGER TU_BINA_GELIR2 FOR BINA_GELIR
ACTIVE AFTER UPDATE POSITION 0
AS
DECLARE VARIABLE numrows INTEGER;
BEGIN
  select count(*)
    from BINA_BILGISI
    where      NEW.BINA_KAYIT_NO = BINA_BILGISI.BINA_KAYIT_NO into numrows;
  IF (   numrows = 0  ) THEN
  BEGIN
    EXCEPTION ERWIN_CHILD_UPDATE_RESTRICT;
  END
  execute procedure SPD_BINA_GELIR2 OLD.BINA_KAYIT_NO, OLD.DONEM, OLD.GELIR_TUTARI;
  execute procedure SPD_BINA_GELIR2 NEW.BINA_KAYIT_NO, NEW.DONEM, NEW.GELIR_TUTARI;
END

*****************************************

CREATE TRIGGER TU_BINA_GIDER1 FOR BINA_GIDER
ACTIVE AFTER UPDATE POSITION 0
AS
DECLARE VARIABLE numrows INTEGER;
BEGIN
  select count(*)
    from BINA_BILGISI
    where      NEW.BINA_KAYIT_NO = BINA_BILGISI.BINA_KAYIT_NO into numrows;
  IF (   numrows = 0  ) THEN
  BEGIN
    EXCEPTION ERWIN_CHILD_UPDATE_RESTRICT;
  END
  execute procedure SPD_BINA_GIDER1 OLD.BINA_KAYIT_NO, OLD.DONEM, OLD.GIDER_TUTARI;
  execute procedure SPD_BINA_GIDER1 NEW.BINA_KAYIT_NO, NEW.DONEM, NEW.GIDER_TUTARI;
END

******************************************

CREATE TRIGGER TU_BINA_GIDER2 FOR BINA_GIDER
ACTIVE AFTER UPDATE POSITION 0
AS
DECLARE VARIABLE numrows INTEGER;
BEGIN
  select count(*)
    from BINA_BILGISI
    where      NEW.BINA_KAYIT_NO = BINA_BILGISI.BINA_KAYIT_NO into numrows;
  IF (   numrows = 0  ) THEN
  BEGIN
    EXCEPTION ERWIN_CHILD_UPDATE_RESTRICT;
  END
  execute procedure SPD_BINA_GIDER2 OLD.BINA_KAYIT_NO, OLD.DONEM, OLD.GIDER_TUTARI;
  execute procedure SPD_BINA_GIDER2 NEW.BINA_KAYIT_NO, NEW.DONEM, NEW.GIDER_TUTARI;
END

Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Hocam eksik olma vur dedik öldürdün sende :lol: Hepsini tek tek inceleme ve irdeleme durumum olmadı fakat ilk başta gördüğüm bir düzeltmeyi tavsiye ederim. Çok fazla kayıt olayın olmayacağı için (zaten FireBird için de farketmez ya :wink: ) şu toplam tablosu ile toplamları artıran eksilten SP leri ayıklamanı isterim. Çünkü iş karıştıkça içinden çıkmaz hale gelebilir. Halbuki bu tablolar zaten mevcut hareketlerden master-detay ilişkisi ile guruplanarak alınabilir ve bu VT motoruna da pek bir yük getirmez :idea:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

merhaba recep abi,

öyle oldu dimi başta demiştim ama :lol:

dediğin konuda haklısın işlem sadece sp ile veya delphi tarafında kodlar ile yapılabilir. bu tür uygulamaya alışma ve öğrenme babında böyle bir çalışma yapmak istedim.

aklıma takılan bir konu var triger lerde işlemi bina bilgisi tablosundan ve bina kayıt no ile yapıyor. fakat bina gelir, bina gider ve bina gelir-gider tablosunda dönem alanı var ve bunlar ile işlem yapıyor. triger tetiklendiğinde bina bilgisi alanından bina kayıt no yu alıyor ama dönem alanı olmadığı için sil dendiğinde bina noyu görünce dönemi dikkate almadan tümünü siliyor sanırım. deneyerek uygulayacağım ve tavsiyenize de uyarak sizin yoldan gitmeyi deneyeceğim.

biiiiip yavrusunu severken öldürürmüş ustam :lol:

kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
Cevapla