Aktarma Stored Proc

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
varyemez
Üye
Mesajlar: 262
Kayıt: 01 Oca 2009 11:00
Konum: Bursa
İletişim:

Aktarma Stored Proc

Mesaj gönderen varyemez »

Merhaba arkadaşlar. Bir tablodan seçtiğim kritere göre diğer bir tabloya basitçe bir aktarma sp yazdım , tamam fakat sonunda çıkış değeri olarak kaç kayıt aktarılmış onu almak istiyorum. Hiç bulunamamışsa 0 gelecek.

Bir diğer sorunum da TIBTable kullandığımda recordcount doğru değer veremiyor. Ancak tablo sonuna table1.last ile gidip bu değeri alabiliyorum. Bunun başka bir yolu varmı?
anemos
Üye
Mesajlar: 110
Kayıt: 02 Nis 2007 07:51
Konum: Sakarya / Hendek

Re: Aktarma Stored Proc

Mesaj gönderen anemos »

SP içindeki aktarım metodu döngü ise bir sayaç değişkeni kullanıp bunu return yapın veya post event ile alın.
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3077
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: Aktarma Stored Proc

Mesaj gönderen sabanakman »

SQL Server üzerinde sorgunun hemen ardından @@RowCount isminde sistem değişkeni üzerinden bu değer direkt elde edilebilmektedir. Pek araştırma imkanım bulnmamakla beraber benzeri bir değişken FireBird içinde de bulunabilir belki.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
varyemez
Üye
Mesajlar: 262
Kayıt: 01 Oca 2009 11:00
Konum: Bursa
İletişim:

Re: Aktarma Stored Proc

Mesaj gönderen varyemez »

SP de aktarma işinde For select ... kullanıp döngü içinde bir değişkeni saydıraraka hallettim. Ancak aynı SP içinde bir de işlemi ters yaptıran silme işlemi var. Bunda döngü olmadan sadece direkt delete from tablo ........ şeklinde yapıyorum. işte onun ardından kaç kayıt silinmiş bilmem gerek.
anemos
Üye
Mesajlar: 110
Kayıt: 02 Nis 2007 07:51
Konum: Sakarya / Hendek

Re: Aktarma Stored Proc

Mesaj gönderen anemos »

Silme işlemini de aynı şekilde yapacasınız. Ör:

Kod: Tümünü seç

for select ... from tablo where ... into :....  as cursor CR do
begin
 if a = b then 
   begin
    delete from tablo where current of CR;
    s = s +1;
  end
end
varyemez
Üye
Mesajlar: 262
Kayıt: 01 Oca 2009 11:00
Konum: Bursa
İletişim:

Re: Aktarma Stored Proc

Mesaj gönderen varyemez »

Teşekürler @anemon. Ben de öyle döngü ile silmeyi düşündüm de. Mantığıma uymadı. Çünkü silerken diğer ana tablodan bilgi çekmeye ihtiyacım yok. sadece silinecek tablodan ayıklayıp silecek.. Bir de silinecek kayıt sayısı çokça olduğu için (5 10 bin civarı) döngü ile yaptırmak makinaya gereksiz yük bindirmek demek ve zamanı da uzatıyor. delphide query ile yaptığımızda query.affectedrows kullanıyordum kolaydı.. SP de de böyle bir ifade olmalı diye düşündüm.
hgunes
Üye
Mesajlar: 27
Kayıt: 01 Nis 2007 03:40
Konum: Çorum

Re: Aktarma Stored Proc

Mesaj gönderen hgunes »

Aynı SP içinde silme işleminden önce silinecek kayıt sayısını Select Count(ID) from table where SilmeKriteri into :SilinenKayitSayisi şeklinde bir değişkene alıp daha sonra silme işlemini yaptırır. Ardından SilinenKayitSayisi değişkenini return edersin.
Cevapla