Mysql LongBlob dosya yükleme kaydetme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
hassur
Üye
Mesajlar: 31
Kayıt: 27 Şub 2015 10:17

Mysql LongBlob dosya yükleme kaydetme

Mesaj gönderen hassur »

Arkadaşlar merhaba Mysql veri tabanına aşağıdaki kod ile dosya yüklemesi yapıyorum. Ancak bu yüklediğim dosyayı tekrar bilgisayarıma kaydedemiyorum. Resim dosyası değil pdf,xls,dos gidi uzantısı farklı dosyalar olacak.

UniQuery1.SQL.Text := 'insert into tablo (alan) values (:dosya)';
UniQuery1.ParamByName('dosya').LoadFromFile(dosyaadi, ftBlob);
UniQuery1.ExecSQL;
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Mysql LongBlob dosya yükleme kaydetme

Mesaj gönderen mrmarman »

Forumda yazılmıştı. Örnek JPG ama biliyorsun JPG veya başka format fark etmez. Teknik hepsi için geçerlidir.
bkz. bu başlık

Aşağıdaki örneği bir procedure olarak hazırlamıştım dilenen yerde kullanması kolaydır.
bkz. [url=http://www.delphiturkiye.com/forum/viewtopic.php?f=2&t=33620&p=180886#p180890]bu başlık[/url] yazdı:Form'unda bir TImage ekle, adı Image1 olduğunu varsayarak aşağıdaki procedure işini görecektir...

Kod: Tümünü seç

procedure BlobResmiGoster( aDataSet:TDataSet; strJPGField:String; aImage: TImage );
Var
  stResim  : TStream;
  JPG      : TJPEGImage;
begin
  stResim := aDataSet.CreateBlobStream(TBlobField(aDataSet.FieldByName( strJPGField )), bmRead);
  stResim.Seek(0, soFromBeginning);
  JPG := TJPEGImage.Create;
    JPG.LoadFromStream( stResim );
    aImage.Picture.Assign( JPG );
  JPG.Free;
  stResim.Free;
end;
Kullanımı :

Örneğin IBQuery'nin OnAfterScroll olayında, sen Gridde gezerken görebilmek için

Kod: Tümünü seç


procedure TForm1.IBQuery1AfterScroll(DataSet: TDataSet);
begin
  BlobResmiGoster( IBQuery1, 'M_RESIM', Image1 ); // veya şu da olur // BlobResmiGoster( DataSet, 'M_RESIM', Image1 ); 
end;
Resim
Resim ....Resim
hassur
Üye
Mesajlar: 31
Kayıt: 27 Şub 2015 10:17

Re: Mysql LongBlob dosya yükleme kaydetme

Mesaj gönderen hassur »

çok anlamadım yani dosyayı ekranda resim olarak göstermek değil niyetim. xls formatında yada uzantsı herne olursa olsun c:\xxx.xx olarak kaydetmek istediğimde ne yapacağımı anlamadım.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Mysql LongBlob dosya yükleme kaydetme

Mesaj gönderen mrmarman »

Hocam söylediklerimden ziyade kodlara odaklanmanı rica edicem.
Bir STREAM oluşturduktan sonra dilersen dosyaya kaydedersin dilersen TCP üzerinden transfer edersin bu sana kalıyor.

Örnek sadece JPG için ama seni bu bağlamaz.

TStream tipi bir değişkeni TFileStream'e COPY edeceksin o kadar. Bu da otomatik olarak bilgisayarında fiziksel bir dosya haline bürünecektir.
Resim
Resim ....Resim
Cevapla