Delphi'den SP ile kayıt

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
KoPilot
Üye
Mesajlar: 166
Kayıt: 05 Eki 2007 07:02

Delphi'den SP ile kayıt

Mesaj gönderen KoPilot » 29 Eyl 2019 01:38

Merhaba;

Delphi tarafında ibstoredprocedure ile yaptığım kayıtta bir sorunum var, şöyleki

Kod: Tümünü seç

with DM.SP_spiStok do
   begin
     Prepare;
     Params.ParamByName('stok_ad').AsString:=EdtStokAd.Text;
     Params.ParamByName('stok_birim').AsString:=CmbBirim.Text;
     Params.ParamByName('stok_alisfiyat').AsCurrency:=StrToCurr(EdtFiyat.Text);
     Params.ParamByName('stok_barkod').AsString:=EdtBarkod.Text;
     Params.ParamByName('stok_giris').AsCurrency:=0;
     Params.ParamByName('stok_cikis').AsCurrency:=0;

     TBlobField(SP_spiStok.Params.ParamByName('stok_resim')).LoadFromFile(OpenPict.FileName);

     ExecProc;
     UnPrepare;
   end;
end;
bu şekilde kayıtta hiçbir sorun yok fakat stokların resimlerini eklemek istediğimde tam resim ekleme kodları satırında hata veriyor. Hata

Kod: Tümünü seç

access violation at address C2950F40. Read of address C2950F40.
Kayıt kodu olarak aşağıda ki satırları ayrı ayrı denedim. İlk satır kayıt yapıyor ama yaptığı kaydı göstermeyi başaramadım.

Kod: Tümünü seç

SP_spiStok.Params.ParamByName('stok_resim').AsBlob:= OpenPict.FileName;

SP_spiStok.Params.ParamByName('stok_resim').LoadFromFile(OpenPict.FileName);

TBlobField(SP_spiStok.Params.ParamByName('stok_resim')).LoadFromFile(OpenPict.FileName);
Dataset ile bu şekilde kayıt yapabiliyorum ama SP ile yapamadım. Yardımcı olur musunuz?
Dosyalarınızı kendi bulutunuza yedekleyin. Yandex Disk
Eyvallah..

Kullanıcı avatarı
KoPilot
Üye
Mesajlar: 166
Kayıt: 05 Eki 2007 07:02

Re: Delphi'den SP ile kayıt

Mesaj gönderen KoPilot » 29 Eyl 2019 04:37

@csunguray hocamın yol göstermesiyle çözüldü.
Çözüm aşağıda

Kod: Tümünü seç

with DM.SP_spiStok do
   begin
     Prepare;
     Params.ParamByName('stok_ad').AsString:=EdtStokAd.Text;
     Params.ParamByName('stok_birim').AsString:=CmbBirim.Text;
     Params.ParamByName('stok_alisfiyat').AsCurrency:=StrToCurr(EdtFiyat.Text);
     Params.ParamByName('stok_barkod').AsString:=EdtBarkod.Text;
     Params.ParamByName('stok_giris').AsCurrency:=0;
     Params.ParamByName('stok_cikis').AsCurrency:=0;

     Params.ParamByName('stok_resim').LoadFromFile(OpenPict.FileName, ftBlob); //Bu satır düzeltildi

     ExecProc;
     UnPrepare;
   end;
end;
Dosyalarınızı kendi bulutunuza yedekleyin. Yandex Disk
Eyvallah..

Cevapla