Konuyu Oyla:
  • Derecelendirme: 4/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
ClientDataSet image field yükleme (DataSnap)
#11
(23-01-2023, Saat: 15:03)RAD Coder Adlı Kullanıcıdan Alıntı: @yemre,
Uses bölümüne Data.DB ekleyin.

evet hata düzeldi çok teşekkür ederim. 
Telefona yükledim butona bastığımda bu hata çıktı ?


Ek Dosyalar Resimler
   
Cevapla
#12
Form3.UniQuery1.ParamByName('pic').LoadFromStream(BlobStream,ftblob);
Satırından kaynaklı bir hata uyarısıdır.
pic parametresi yok diyor.

Çözüm:
Form3.UniQuery1.ParamByName('pic').LoadFromStream(BlobStream,ftblob);
satırından hemen önce şu kodu yazın.
Form3.UniQuery1.Prepared:=True;

olmaz ise;
Şunu deneyin
Form3.UniQuery1.Params[0].LoadFromStream(BlobStream,ftblob);
Begin : = end / 2;
Cevapla
#13
(23-01-2023, Saat: 16:15)RAD Coder Adlı Kullanıcıdan Alıntı:
Form3.UniQuery1.ParamByName('pic').LoadFromStream(BlobStream,ftblob);
Satırından kaynaklı bir hata uyarısıdır.
pic parametresi yok diyor.

Çözüm:
Form3.UniQuery1.ParamByName('pic').LoadFromStream(BlobStream,ftblob);
satırından hemen önce şu kodu yazın.
Form3.UniQuery1.Prepared:=True;

olmaz ise;
Şunu deneyin
Form3.UniQuery1.Params[0].LoadFromStream(BlobStream,ftblob);
 evet 2. seçenek sorunumu çözdü Harikasın teşekkür ederim ....
Cevapla
#14
Üstadım peki veritabanına çektiğim image'yi istediğim bir forum üzerindeki image 'ye nasıl çekebilirim ?
Cevapla
#15
DB den bir fotoğrafı alıp, göstermek:

var
  msFoto: TMemoryStream;
begin
 msFoto := TMemoryStream.Create;
 try
   TBlobField(FDMemTable1.FieldByName('FOTO')).SaveToStream(msFoto);
   msFoto.Position := 0;
   Image1.Picture.LoadFromStream(msFoto);
 finally
   msFoto.Free;
 end;
end;

Resmi DB ye kaydetmek:

var
  msFoto: TMemoryStream;
begin
 msFoto := TMemoryStream.Create;
 try
   FDMemTable1.Append;
   TBlobField(FDMemTable1.FieldByName('FOTO')).LoadFromFile('D:\Download\abc.png');
   FDMemTable1.Post;
 finally
   msFoto.Free;
 end;
end;
Begin : = end / 2;
Cevapla
#16
(24-01-2023, Saat: 09:35)RAD Coder Adlı Kullanıcıdan Alıntı: DB den bir fotoğrafı alıp, göstermek:

var
  msFoto: TMemoryStream;
begin
 msFoto := TMemoryStream.Create;
 try
   TBlobField(FDMemTable1.FieldByName('FOTO')).SaveToStream(msFoto);
   msFoto.Position := 0;
   Image1.Picture.LoadFromStream(msFoto);
 finally
   msFoto.Free;
 end;
end;

Resmi DB ye kaydetmek:

var
  msFoto: TMemoryStream;
begin
 msFoto := TMemoryStream.Create;
 try
   FDMemTable1.Append;
   TBlobField(FDMemTable1.FieldByName('FOTO')).LoadFromFile('D:\Download\abc.png');
   FDMemTable1.Post;
 finally
   msFoto.Free;
 end;
end;
 
External Exeption 0. Hatası alıyorum acaba göstermek istediğim image'nin boyu önemli mi ?
Cevapla
#17
Boyut ile ilgili bir sorun olduğunu sanmıyorum.
Tahminimce resmin dosya tipinden kaynaklı olabilir. 
DB deki dosya tipiniz nedir?
Debug yaptığınızda hangi satırda bu hatayı alıyorsunuz?
Hatayı tam olarak paylaşabilir misiniz?
Begin : = end / 2;
Cevapla
#18
sıraya göre image yüklüyorum siras 25 olduğu yerde bu hatayı veriyor 


procedure TForm3.Button2Click(Sender: TObject);
   var
 siras:Integer;
 i,n:Integer;
 msFoto: TMemoryStream;

begin
  Form3.UniQuery1.Close;
  Form3.UniQuery1.SQL.Clear;
  Form3.UniQuery1.SQL.Add('select * from  data_ilan ');
  Form3.UniQuery1.Open;
  n:=Form3.UniQuery1.RecordCount;
  msFoto := TMemoryStream.Create;
 // try
  //TBlobField(UniQuery1.FieldByName('pic')).SaveToStream(msFoto);
  //msFoto.Position := 0;
   //finally
  //msFoto.Free;
  //end;


for i := 0 to n-1 do
  begin
  siras:= Form3.UniQuery1sira.Value;
  Form3.UniQuery1.Next;
  TBlobField(UniQuery1.FieldByName('pic')).SaveToStream(msFoto);
  //msFoto.Position := 0;
   msFoto.Free;
if siras= 1 then
  begin
       Memo1.Lines.Clear;
       Memo1.Lines.Add(Form3.UniQuery1metin.Value);
       Image1.MultiResBitmap.LoadFromStream(msFoto);
  end
else if siras=2 then
  begin
       Memo2.Lines.Clear;
       Memo2.Lines.Add(Form3.UniQuery1metin.Value);
       Image2.Bitmap.LoadFromStream(msFoto);
  end
  else if siras=3 then
  begin
       Memo3.Lines.Clear;
       Memo3.Lines.Add(Form3.UniQuery1metin.Value);
       Image3.Bitmap.LoadFromStream(msFoto);
  end
  else if siras=4 then
  begin
       Memo4.Lines.Clear;
       Memo4.Lines.Add(Form3.UniQuery1metin.Value);
       Image4.Bitmap.LoadFromStream(msFoto);
  end
  else if siras=5 then
  begin
       Memo5.Lines.Clear;
       Memo5.Lines.Add(Form3.UniQuery1metin.Value);
       Image5.Bitmap.LoadFromStream(msFoto);
  end
  else if siras=25 then
  begin
       Memo6.Lines.Clear;
       Memo6.Lines.Add(Form3.UniQuery1metin.Value);
       Image6.MultiResBitmap.LoadFromStream(msFoto);
  end
end;


Ek Dosyalar Resimler
   
Cevapla
#19
Merhabalar,

Yukarı da paylaşılan link'i tam olarak incelemenizi öneririm.

@RAD Coder > https://www.delphican.com/showthread.php...1#pid51741

msFoto.Position := 0;
nasıl kullanıldığını,

yine aynı şekilde
msFoto.Free;
Hangi aşamadan sonra kullanıldığına dikkat edin.

Kolay gelsin.
Amaç, bilginin de/aklın da zekat'ını vermek.
Cevapla
#20
(25-01-2023, Saat: 09:25)tekrar gözden geçirdim şu an sorunum düzeldi . hi_selamlar Adlı Kullanıcıdan Alıntı:
procedure TForm3.Button2Click(Sender: TObject);
   var
 siras:Integer;
 i,n:Integer;
 msFoto: TMemoryStream;

begin
  Form3.UniQuery1.Close;
  Form3.UniQuery1.SQL.Clear;
  Form3.UniQuery1.SQL.Add('select * from  data_ilan ');
  Form3.UniQuery1.Open;
  n:=Form3.UniQuery1.RecordCount;

for i := 0 to n-1 do
  begin
   siras:= Form3.UniQuery1sira.Value;
   Form3.UniQuery1.Next;
if siras= 1 then
  begin
       Memo1.Lines.Clear;
       Memo1.Lines.Add(Form3.UniQuery1metin.Value);
       msFoto := TMemoryStream.Create;
        try
       TBlobField(UniQuery1.FieldByName('pic')).SaveToStream(msFoto);
       msFoto.Position := 0;
       Image1.Bitmap.LoadFromStream(msFoto);
       finally
         msFoto.Free;
       end;
  end
else if siras=2 then
  begin
       Memo2.Lines.Clear;
       Memo2.Lines.Add(Form3.UniQuery1metin.Value);
       msFoto := TMemoryStream.Create;
        try
       TBlobField(UniQuery1.FieldByName('pic')).SaveToStream(msFoto);
       msFoto.Position := 0;
       Image2.Bitmap.LoadFromStream(msFoto);
       finally
         msFoto.Free;
       end;
  end
  else if siras=3 then
  begin
       Memo3.Lines.Clear;
       Memo3.Lines.Add(Form3.UniQuery1metin.Value);
       msFoto := TMemoryStream.Create;
        try
       TBlobField(UniQuery1.FieldByName('pic')).SaveToStream(msFoto);
       msFoto.Position := 0;
       Image3.Bitmap.LoadFromStream(msFoto);
       finally
         msFoto.Free;
       end;
  end
  else if siras=4 then
  begin
       Memo4.Lines.Clear;
       Memo4.Lines.Add(Form3.UniQuery1metin.Value);
       msFoto := TMemoryStream.Create;
        try
       TBlobField(UniQuery1.FieldByName('pic')).SaveToStream(msFoto);
       msFoto.Position := 0;
       Image4.Bitmap.LoadFromStream(msFoto);
       finally
         msFoto.Free;
       end;
  end
  else if siras=5 then
  begin
       Memo5.Lines.Clear;
       Memo5.Lines.Add(Form3.UniQuery1metin.Value);
       msFoto := TMemoryStream.Create;
        try
       TBlobField(UniQuery1.FieldByName('pic')).SaveToStream(msFoto);
       msFoto.Position := 0;
       Image5.Bitmap.LoadFromStream(msFoto);
       finally
         msFoto.Free;
       end;
  end
  else if siras=6 then
  begin
       Memo6.Lines.Clear;
       Memo6.Lines.Add(Form3.UniQuery1metin.Value);
       msFoto := TMemoryStream.Create;
        try
       TBlobField(UniQuery1.FieldByName('pic')).SaveToStream(msFoto);
       msFoto.Position := 0;
       Image6.Bitmap.LoadFromStream(msFoto);
       finally
         msFoto.Free;
       end;
  end
end;
Merhabalar,

Yukarı da paylaşılan link'i tam olarak incelemenizi öneririm.

@RAD Coder > https://www.delphican.com/showthread.php...1#pid51741

msFoto.Position := 0;
nasıl kullanıldığını,

yine aynı şekilde
msFoto.Free;
Hangi aşamadan sonra kullanıldığına dikkat edin.

Kolay gelsin.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Birden Fazla İmage ı Whatsapp ile paylaşmak barissagir 1 632 05-06-2025, Saat: 03:24
Son Yorum: barissagir
  ClientDataSet Field Not found hatası. mcuyan 0 636 07-06-2024, Saat: 19:57
Son Yorum: mcuyan
  Google play Uygulama yükleme hatası [Çözüldü] codder71 3 1.364 23-02-2024, Saat: 22:42
Son Yorum: codder71
  Cihaza ipa dosyası yükleme emrahozten 13 7.052 27-10-2023, Saat: 17:13
Son Yorum: emrahozten
  FMX Listview Image Sorunu [ÇÖZÜLDÜ] Mesut 1 928 20-10-2023, Saat: 15:03
Son Yorum: Mesut



Konuyu Okuyanlar: 1 Ziyaretçi