SP de veya SQL de aranan kayıt bulunamazsa ??

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
Salih
Üye
Mesajlar: 250
Kayıt: 11 Mar 2004 05:36

SP de veya SQL de aranan kayıt bulunamazsa ??

Mesaj gönderen Salih »

Merhaba,

Şöyle bir Select cümlemiz olsun :

Kod: Tümünü seç

    select ADI from PERS
      where PERS.PERSKODU = :PERSKODU into  :PERSADI;
Aranan kayıt bulunamaz ise, PERSADI değişkenine default değer ataması için ne yaparız ? Dökümanlarda SQL error kodu vs gibi bir örnek görmüştüm, ancak şimdi bulamıyorum.

Kod: Tümünü seç

    select ADI from PERS
      where PERS.PERSKODU = :PERSKODU into  :PERSADI;
 when sqlerr PERSADI = 'bulunamadı'
gibi bir şey arıyorum yani.
Sevgi, Saygı.....
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

aynı sorgudan donen kayıt sayısını kontrol ederek olabilir

Kod: Tümünü seç

select count(*) from PERS
      where PERS.PERSKODU = :PERSKODU into  :numrows; 
if (:numrows=0) then
begin
  PERSADI='ANAN PERSONEL BULUNAMADI...'   
  exit;
end
ÜŞENME,ERTELEME,VAZGEÇME
Salih
Üye
Mesajlar: 250
Kayıt: 11 Mar 2004 05:36

Mesaj gönderen Salih »

Teşekkürler Admin'im.

Ama benim dediğim gibi bir olay da vardı, ama hangi kitabın neresinde gördüm, gel de bul şimdi. Bulursam buraya yazarım.
Sevgi, Saygı.....
onaydin

Mesaj gönderen onaydin »

Belki ROW_COUNT u görmüşsünüzdür.
Son kullanılan DML cümlesinden etkilenen satır sayısını veriyor.

Kod: Tümünü seç

UPDATE TABLE1 SET FIELD1 = 0 WHERE ID = :ID;
IF (ROW_COUNT = 0) THEN
INSERT INTO TABLE1 (ID, FIELD1) VALUES (:ID, 0);
Ama select için sadece 0 dönüyor, bu sebeple çalışmaz.
Salih
Üye
Mesajlar: 250
Kayıt: 11 Mar 2004 05:36

Mesaj gönderen Salih »

Belki de rüyamdaydı, bugünlerde rüyalarım da acaipleşti :)
Sevgi, Saygı.....
Cevapla