Adodataset adoblobstream dosya kayıt yardım

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
mss
Üye
Mesajlar: 16
Kayıt: 30 Eyl 2013 09:45

Adodataset adoblobstream dosya kayıt yardım

Mesaj gönderen mss »

Arkadaşlar Merhaba
Aşağıdaki blob kayıt hakkında yardımcı olabilecek var mı?

Kod: Tümünü seç

procedure TForm3.Button1Click(Sender: TObject);
var
blobb:TadoBlobStream;
fs:tfilestream;
begin
//Neden aşağıdaki kodda Tadoblobstream ve tstream bağlaşmadına dair hata alıyorum???
blobb := adodataset1.CreateBlobStream(adodataset1.fieldbyname('blob'),bmwrite);

try
blobb.Seek(0, soFromBeginning);
fs := TFileStream.Create('C:\Users\M.Selman\Desktop\err.xlsx', fmOpenRead or
fmShareDenyWrite);
try
blobb.CopyFrom(fs, fs.Size)
finally
fs.Free
end;
finally
blobb.Free
end;
end;
ertank
Kıdemli Üye
Mesajlar: 1716
Kayıt: 12 Eyl 2015 12:45

Re: Adodataset adoblobstream dosya kayıt yardım

Mesaj gönderen ertank »

Merhaba,

Kullandığın CreateBlobStrem() fonksiyonu geriye TStream cinsinde bir değer çeviriyor (üzerine gelip F1 tuşu ile Delphi yardım bölümünden daha detaylı bilgi alabilirsin). Sen ise bunu TAdoBlobStream türünde bir değişkene atama yapmak istiyorsun.

Aşağıdaki şekilde kodunu değiştirirsen çalışacaktır.

Kod: Tümünü seç

procedure TForm14.Button1Click(Sender: TObject);
var
  blobb: TStream;
  fs: TFileStream;
begin
  blobb := AdoDataSet1.CreateBlobStream(AdoDataSet1.fieldbyname('blob'), bmwrite);

  try
    blobb.Seek(0, soFromBeginning);
    fs := TFileStream.Create('C:\Users\M.Selman\Desktop\err.xlsx', fmOpenRead or fmShareDenyWrite);
    try
      blobb.CopyFrom(fs, fs.Size);
    finally
      fs.Free();
    end;
  finally
    blobb.Free();
  end;
end;
Özellikle yukarıdaki gibi "blok" halinde kod yazmaya dikkat etmende fayda var. Böylece yazılan kodun anlaşılması çok daha kolay oluyor.
mss
Üye
Mesajlar: 16
Kayıt: 30 Eyl 2013 09:45

Re: Adodataset adoblobstream dosya kayıt yardım

Mesaj gönderen mss »

Merhaba,

Siz de hiç yaşadınız mı bilmiyorum. Bir sıkıntı olduğunda sizi çağırırlar elinizi bilgisayara değdiniz anda düzelir. Herşey normaldir. Aynı kod bende de bu sıkıntıyı verdi. Değişik şeyler yaptım olmadı işte. Teşekkür ederim.
Cevapla