Procedure Yaratmada sorun

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Nemesis2005
Üye
Mesajlar: 136
Kayıt: 18 Oca 2005 05:24
Konum: İzmir

Procedure Yaratmada sorun

Mesaj gönderen Nemesis2005 »

Selam bir Database uygulaması yapmaktayım.ZeosLib 6.6 ,FireBird 2.0 kullanmaktayım. Yeni şirket oluşturma sırasında SQL cümleciklerini arka arkaya çalıştırarak datayı yaratıyorum. Buraya kadar bir problem yok. bir adet Procedure var ve bu Procedure yeni database içinde yaratmaya çalıştığımda hata dönüyor. Aslında Procedure IB EXpert'te Yaratılıyor ve datadada kullanabiliyorum.Tahminim Procedure içinde Cursor tanımlaması var ve bunlardan dolayı hata veriyor. Zeos Componentini Firebird 2.0 olarak ayarlıyorum ama yine olmuyor. Bu Procedure'yi nasıl Query'le nasıl yaratabilirim .
Her iyinin içinde bir Kötülük.Her Kötnün içide de bir iyilik vardır
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Veri tabanında bir tablo veya bağımlı başka bir şeyden dolayı olabilir. Procedure kısmına kadar olanları yaptıktan sonra Commit leyip en son tekrar vt ye bağlanıp procedure ü oluşturmayı deneyin :wink:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Nemesis2005
Üye
Mesajlar: 136
Kayıt: 18 Oca 2005 05:24
Konum: İzmir

Mesaj gönderen Nemesis2005 »

Sadece o Procedure yaratmak için egerekli kodu bile gönderdim ama nafile Query den gönderdiğim kod yaratılmıyor. ama aynı kod IBEXPERT'ten çalıştırdığımda kod çalışıyor ve Precedure yaratılmış oluyor

Kod: Tümünü seç

CREATE PROCEDURE CARIBAKIYEBUL (
    carikod varchar(15),
    trh date,
    inckeyno integer)
returns (
    bakiye double precision)
as
declare variable gunbakiye double precision;
declare variable geribakiye double precision;
declare variable tmpbak double precision;
declare variable tmpinc integer;
declare bakiye_cur cursor for (select (borc - alacak), key_no from carihar
          where (cari_kod = :carikod and
          (tarih < (:trh + 1))
          and (tarih > (:trh - 1)))
          order by tarih, key_no);
begin
   SELECT SUM(BORC - ALACAK) FROM CARIHAR
                         WHERE (CARI_KOD = :CARIKOD AND TARIH < :TRH)
                         INTO :GERIBAKIYE;
  GUNBAKIYE = 0.0;
  OPEN BAKIYE_CUR;
  FETCH BAKIYE_CUR INTO :TMPBAK, :TMPINC;
  WHILE  (TMPINC <> :INCKEYNO) DO --((FETCH_STATUS <> -1) AND
  BEGIN
    GUNBAKIYE = GUNBAKIYE + TMPBAK;
    FETCH BAKIYE_CUR INTO :TMPBAK, :TMPINC;
  END
  CLOSE BAKIYE_CUR;
--  DEALLOCATE BAKIYE_CUR;
  IF (GERIBAKIYE is NULL) THEN GERIBAKIYE = 0;
  IF (GUNBAKIYE IS NULL) THEN GUNBAKIYE = 0;
  BAKIYE = GERIBAKIYE +GUNBAKIYE;
  suspend;
end
Kod ise bu ama kodda herhangi bir hata yok çünkü IBEXPERT'te yarattıktan sonra kullanabiliyorum
Her iyinin içinde bir Kötülük.Her Kötnün içide de bir iyilik vardır
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
paramcheck ini false ederek dene;
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Nemesis2005
Üye
Mesajlar: 136
Kayıt: 18 Oca 2005 05:24
Konum: İzmir

Mesaj gönderen Nemesis2005 »

aslangeri yazdı:s.a.
paramcheck ini false ederek dene;
kolay gelsin.
evet dediğiniz gibi yaptım ve çalıştı çok teşekkürler
Her iyinin içinde bir Kötülük.Her Kötnün içide de bir iyilik vardır
Cevapla