SQL SUSPEND

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
hakkus
Üye
Mesajlar: 160
Kayıt: 18 Haz 2003 12:02
Konum: Konya

SQL SUSPEND

Mesaj gönderen hakkus »

Merhabalar,
Database olarak Firebird kullanıyorum.
Bir StoredProcedure yazdım istediğim gibi çalışıyor. Ancak örnekleri incelediğimde bazı SProcedurlarda SUSPEND ifadesi var.
Yazdığım storedProcedure'da SUSPEND ifadesini kullansam da kullanmasam da sonuç değişmiyor.
SUSPEND tam olarak ne yapıyor, hangi tip procedurlarda kulanmam gerekir?
Saygıyla
saygılar
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

tam olarak hatırlamıyorum ama sanırım SUSPEND ifadesi bir kayıt dondurenler icin ,sadece icra yapan(insert,edit,delete)lar icin gerek yoktu
olsa da bisey degismiyo galiba....
fahrettin abi daha iyi bilir

langref den alıntı
Description The SUSPEND statement:

Suspends execution of a stored procedure until the application issues the next FETCH.

Returns values of output parameters, if any.

A procedure should ensure that all output parameters are assigned values before a SUSPEND.
aynı yazının devamında
SUSPEND should not be used in an executable procedure. Use EXIT instead to indicate to the reader explicitly that the statement terminates the procedure.
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Selamlar,

SUSPEND komutu, eğer Stored Procedure geriye birden fazla değerin olduğu (result set olarak, hani viewlerdeki gibi bir tablo benzeri sonuç) döndürecekse kullanılmakta,
şöyle benzetme şekilde örneklendireyim

Kod: Tümünü seç

  .
  .
  FOR SELECT ALAN1, ALAN2 FROM TABLO1 INTO :MEM_ALAN1, :MEM_ALAN2 DO
  BEGIN
    .
    .
    .
    /*YUKARIDA GEREKLİ İŞLEMLER YAPILDI MEM_ALAN DEĞİŞKENLERİNE HESAPLAMALAR İLE BİRŞLEYLER YAPILDI VE SONUÇTA MEM_ALAN1 VE MEM_ALAN2 DÖNDÜRÜLECEK*/
    SUSPEND ;
  END
  .
  .
Bu kullanımda SUSPEND durumunda, IB/FB Server ilgili Procedure'u çağıran şeyin bu bilgiyi FETCH etmesini bekleyecektir, FETCH ettikten sonra diğer Row'lara geçecektir. Yani bir nevi senkronizasyon yapıyor.

Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
hakkus
Üye
Mesajlar: 160
Kayıt: 18 Haz 2003 12:02
Konum: Konya

Mesaj gönderen hakkus »

Bilgiler için teşekkür ederim.
saygılar
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

aslınca cevap verecek bir sorun kalmamıs orada ama :)
adim gecince verilen cevaplara katildigimi belirteyim bari... Dun sehir disinda oldugum icin foruma girememistim...

Kolay gelsin....
Cevapla