SQL SUSPEND
hakkus09.12.2003 - 11:16:44
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
 
gkimirti10.12.2003 - 11:25:57
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.
 
Kuri_YJ11.12.2003 - 09:42:21
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

.
.
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
 
hakkus11.12.2003 - 10:04:02
Bilgiler için teşekkür ederim.
 
fahrettin11.12.2003 - 10:44:18
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....
 
NOT : Bu sayfa google'un siteyi indekslemesi içindir. www.delphiturkiye.com/forum/ adresini kullanınız!
1998-2006 www.delphiturkiye.com