Delphi Can
İç İçe Cursor Kullanımı - Baskı Önizleme

+- Delphi Can (https://www.delphican.com)
+-- Forum: Veri Tabanı (https://www.delphican.com/forumdisplay.php?fid=4)
+--- Forum: MS SQL Server (https://www.delphican.com/forumdisplay.php?fid=103)
+--- Konu Başlığı: İç İçe Cursor Kullanımı (/showthread.php?tid=4609)



İç İçe Cursor Kullanımı - Bay_Y - 10-03-2020

Herkese Merhabalar , sorunum biraz karışık olabilir şimdiden özür diliyorum. Açıklamaya çalışacağım umarım başarabilirim.

Reçete işlemleri sırasında bazen ürün ile ilgili işlemler bitmeden farklı bir ürüne oradan da başka bir ürüne geçmem gerekebiliyor. 
Bu yüzden Cursor kullanarak bazı değerler almak ve bazı işlemler yapmak istiyorum. Fakat Kullandığım @@FETCH_STATUS=0 değeri 
ikinci sorgu içine girdiğimde doğru çalışmıyor. Veya ikinci sorgu içinde herhangi bir Procedure çalıştırdığımda @@FETCH_STATUS değeri döngüyü bozup işlem
başında ortasında ama kesinlikle olması gereken yerde yani sonunda çıkmıyor tabiki bitmeden çıktığı için diğer işleme geçince de Cursor açık diye hata veriyor.
(Cursorler farklı procedure lerin içinde ve işlem yaparken procedure çağırarak bu işlemler yapılıyor. Farkeder mi bilmiyorum ama belirtmek istedim. Bu procedurelerin içinde aynı zamanda kayıt işlemleri de yapılıyor.)
bu şekilde bir yapıda Cursor kullanımı nasıl olmalı .? Bu konu hakkında yardımcı olabilirseniz sevinirim. 

Teşekkürler.


Cvp: İç İçe Cursor Kullanımı - csunguray - 11-03-2020

(10-03-2020, Saat: 18:52)Bay_Y Adlı Kullanıcıdan Alıntı: Herkese Merhabalar , sorunum biraz karışık olabilir şimdiden özür diliyorum. Açıklamaya çalışacağım umarım başarabilirim.

Reçete işlemleri sırasında bazen ürün ile ilgili işlemler bitmeden farklı bir ürüne oradan da başka bir ürüne geçmem gerekebiliyor. 
Bu yüzden Cursor kullanarak bazı değerler almak ve bazı işlemler yapmak istiyorum. Fakat Kullandığım @@FETCH_STATUS=0 değeri 
ikinci sorgu içine girdiğimde doğru çalışmıyor. Veya ikinci sorgu içinde herhangi bir Procedure çalıştırdığımda @@FETCH_STATUS değeri döngüyü bozup işlem
başında ortasında ama kesinlikle olması gereken yerde yani sonunda çıkmıyor tabiki bitmeden çıktığı için diğer işleme geçince de Cursor açık diye hata veriyor.
(Cursorler farklı procedure lerin içinde ve işlem yaparken procedure çağırarak bu işlemler yapılıyor. Farkeder mi bilmiyorum ama belirtmek istedim. Bu procedurelerin içinde aynı zamanda kayıt işlemleri de yapılıyor.)
bu şekilde bir yapıda Cursor kullanımı nasıl olmalı .? Bu konu hakkında yardımcı olabilirseniz sevinirim. 

Teşekkürler.

Aşağıdaki linkteki örnekte @@FETCH_STATUS değerini başka bir değişkene atarak halletmiş. 

http://truelogic.org/wordpress/2015/01/03/nested-cursors-in-t-sql/


İç İçe Cursor Kullanımı - Bay_Y - 11-03-2020

Teşekkür ederim. Aslında bakınca bana da mantıklı geldi niye bizim aklımıza gelmedi anlamadım. Sad

Farklı değere atamama rağmen yinede değer sıfırlanıyor , Sanırım sebebi farklı procedure olarak çağırmam.Deniyorum çözebilirsem bursan paylaşacağım.