sp ile birden fazla tabloya aynı anda kayıt

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
sTb
Üye
Mesajlar: 59
Kayıt: 06 Nis 2005 11:13
Konum: Eskişehir

sp ile birden fazla tabloya aynı anda kayıt

Mesaj gönderen sTb »

s.a.

fb de bir sp ile aynı anda 3 tabloya kayıt yapmaya çalışıyorum

sp bu

Kod: Tümünü seç

ALTER PROCEDURE UYE_KAYIT (
    FIRMASI VARCHAR(25),
    ADRESI VARCHAR(50),
    TEL VARCHAR(12),
    FAX VARCHAR(12),
    YETKILI VARCHAR(12),
    DURUM INTEGER,
    SEHIRI VARCHAR(20),
    SIFRESI INTEGER,
    KULLANICISI VARCHAR(10),
    USTKODU INTEGER,
    DURUMUU INTEGER)
AS
DECLARE VARIABLE SONKOD INTEGER;
begin
  /* Procedure Text */
  INSERT INTO uyeler (firma,adres,tel,fax,yetkili,durum,sehir )
VALUES (:firmasi,:adresi, :tel,:fax,:yetkili,:durum,:sehiri);

select first 1 gen_id(gn_uye,0) from RDB$RELATIONS
into :sonkod ;

  INSERT INTO sifre (kod,sifre,kullanici)
VALUES (:sonkod,:sifresi,:kullanicisi);

   INSERT INTO grup (ustkod,kod ,durum)
VALUES (:ustkodu,:sonkod,:durumuu);

  suspend;
end
delphi tarafından

Kod: Tümünü seç

IBStoredProc1.Prepare;
IBStoredProc1.Params.ParamByName('FIRMASI').AsString:=edit1.text;
//IBStoredProc1.Params.ParamByName('ADRESI').AsString:=memo1.text;
//IBStoredProc1.Params.ParamByName('TEL').AsString:=edit2.Text;
//IBStoredProc1.Params.ParamByName('FAX').AsString:=edit3.Text;
//IBStoredProc1.Params.ParamByName('YETKILI').AsString:=edit4.Text;
//IBStoredProc1.Params.ParamByName('DURUM').AsInteger:=durumu;
//IBStoredProc1.Params.ParamByName('SEHIRI').AsString:=ComboBox1.Text;

////IBStoredProc1.Params.ParamByName('KOD').AsInteger:=2;
//IBStoredProc1.Params.ParamByName('SIFRESI').AsString:=edit7.Text;
//IBStoredProc1.Params.ParamByName('KULLANICISI').AsString:=edit6.Text;

//IBStoredProc1.Params.ParamByName('USTKODU').AsString:=label17.caption;
////IBStoredProc1.Params.ParamByName('KOD').AsInteger:=2;
//IBStoredProc1.Params.ParamByName('DURUMUU').AsInteger:=durumu;
IBStoredProc1.ExecProc;
IBStoredProc1.Unprepare;
yazıyorum ancak çalıştığında program kitleniyor hiçbir işlem yapmıyor hata da vermiyor..

uyeler tablosu master diğer iki tablo ona bağlı
delphi 7 ve fb 1.5 kullanıyorum

kilitlenmesinin sebebi ne olabilir? veya kullanımım hatalı ise nasıl birşey öneririsiniz.

not: ib expert ile yaptıgımda hiçbir problem yok :(..
" Her bildiğin doğru olsun. Ama her doğruyu her yerde söylemek doğru değildir. "
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Mesaj gönderen mkysoft »

ibclient gibi bir tool'dan direk proceduru çağırmanı tavsiye ederim. belki hata veri tabanı kısmındadır belki delphide. anlamana yardımcı olmuş olur.

kolay gelsin.
poshet303
Üye
Mesajlar: 235
Kayıt: 26 Eki 2005 01:15

Mesaj gönderen poshet303 »

Programınızda recursive bir durum olabilir. Trace etmeyi denediniz mi?
Kullanıcı avatarı
sTb
Üye
Mesajlar: 59
Kayıt: 06 Nis 2005 11:13
Konum: Eskişehir

Mesaj gönderen sTb »

yardımlarınız için teşekkurler..

sp yi tek tek yapmaya başladım.. sadece birinci insert kullanılırsa problerm vermiyor. fakat ikinci insertide eklersem gene kitlenme yapıyor. ibx den işlem yapmak istediğim zaman

Kod: Tümünü seç

Error Message:
----------------------------------------
Unsuccessful execution caused by system error that does not preclude successful execution of subsequent statements.
lock conflict on no wait transaction.
hatası veriyor..

viewtopic.php?t=3260&highlight=deadlock
viewtopic.php?t=6969&highlight=deadlock
viewtopic.php?t=7945&highlight=deadlock

açıklamalar var ama firebird de yeniyim. ne yapmam gerektiğini anlayamadım..
" Her bildiğin doğru olsun. Ama her doğruyu her yerde söylemek doğru değildir. "
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Mesaj gönderen mkysoft »

beklemeyen transaction üstünde çakışma oldu ve komut tamamlanamadı diyor. verdiğin linklerde konuyla alakalı bişey göremedim. insert den önce transaction açıp sonunda kapatmayı dene (her iki insert için ayrı ayrı)
poshet303
Üye
Mesajlar: 235
Kayıt: 26 Eki 2005 01:15

Mesaj gönderen poshet303 »

Verdiğiniz kodlara bakınca bir sorun görünmüyor. Daha önce recursive bir durum olabilir demiştim yine aynı konuya geleceğim.

Ekleme yaptığınız tablolarda triger var mı. Ekleme sırasında tetiklenen bir triger da yapılan bir işlem bu soruna neden olabilir. Yine bu tablaları ilişkilendiren foreignkey ler varsa onlarıda kontrol etmeli.

Kolaygelsin
Cevapla