BDE için kod ile resim yükleme

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
Yavuz
Üye
Mesajlar: 115
Kayıt: 09 Haz 2005 03:10

BDE için kod ile resim yükleme

Mesaj gönderen Yavuz »

BDE kullanıyorum ve ilgili alanlara yüklemeyi

Kod: Tümünü seç

Table1['AD']:='Selami'
şeklinde yapıyorum aynı iş RESİM alanları için nasıl yapılır. (DBImage kullanmadan) aşağıda bu iş için olduğunu zannettiğim kodu forumda buldum

Kod: Tümünü seç

jpgresim: Tjpegimage; 
  blobalan: TBlobStream; 
  hafiza: Tmemorystream; 
  begin 
   if OpenDialog1.Execute then 
   Image1.Picture.LoadFromFile(OpenDialog1.FileName); 
    with IBDataSet1 do 
    begin 
      Insert; 
      jpgresim:=TJpegImage.Create; 
      jpgresim.assign(Image1.Picture.bitmap); 
      hafiza:=TMemoryStream.Create; 
      jpgresim.savetostream(hafiza); 
      blobalan:=TBlobStream.Create(TGraphicField(FieldByName('resim')), bmWrite); 
      blobalan.copyfrom(hafiza,0); 
      blobalan.free; 
      hafiza.free; 
      jpgresim.free; 
   end; 
ancak TBlobStream için USES e bişiler eklenecek zannedersem
bu kod uygun mudur ? Uses e ne eklemeliyim ? Başka türlü nasıl yükleme yapılabilir ?

Teşekkürler ...
Kullanıcı avatarı
ender_arslanturk
Kıdemli Üye
Mesajlar: 709
Kayıt: 18 Şub 2005 03:38
Konum: İstanbul

Mesaj gönderen ender_arslanturk »

Merhaba

Bu konu daha önceden yazılmıştı fakat neden kod ile yapmak istediğini anlamadım...

Şu şekilde yapsan da olur...
Normal image nesnesine resmi klasörden seç... Sonra bunu veritabanına kaydederken DBimage eşitle...

Kod: Tümünü seç

DBImage1.Picture:=Image1.Picture;
Query1.Post;

Tabii DBImage ilgili datasete bağlanmalı... :wink:

Kolay Gelsin...
Kullanıcı avatarı
Yavuz
Üye
Mesajlar: 115
Kayıt: 09 Haz 2005 03:10

Mesaj gönderen Yavuz »

Veri tabanına döngü içinde resim eklediğimden (JPG olarak) bu işi kod ile yapmam gerekti.

verdiğiniz kodu direk kullanmak yerine dönüşüm yaptırmam gerekti;
İmage1 de BMP var
onu jpg ye onuda image2 e atmam gerekti
onu da VT ye kaydedebildim ...

Kod: Tümünü seç

form2.table1.Insert;
    jpg.Assign(Image1.Picture.Bitmap);
    Image2.Picture.Assign(jpg);
    JvDBImage1.Picture:=Image2.Picture;
    form2.Table1.post;
Çok teşekkürler...
Kolay gelsin ...
Turki
Üye
Mesajlar: 75
Kayıt: 03 May 2005 08:02

Mesaj gönderen Turki »

Kodlarla Jpeg veritabanına Bmp Formatı boyutunda yazıyor.Yani ne yaparsanız yapın jpeg kaydediyor gibi gözüküyor ama Bmp formatında yazıyor.Böyle Uğraşacağınıza JEDI'nin JvDBImagesini Kullanın Çok basit şekilde jpg olarak veritabanına yazıyor.Byte olarak karşılaştırın farkı göreceksiniz. iyi çalışmalar.
Cevapla