Simpan Gambar ke Database MySql dengan Delphi RAD Studio

Assalamu'alaikum Sehat selalu buat kita semua ya aaaaammmiiiin...

Masih seputar Delphi ni, belum bisa move on dari postingan sebelumnya kali ini ane mau sharing cara simpan file image/gambar ke dalam database MySql, klo biasanya kita save image ke dalam folder tertentu tetapi ini jadi kendala saat membuat installer project delphi ane harus ngerubah script folder tempat simpan image nah dari pada 2x kerja jadi mending di simpan aja ke dalam database, yg pasti ukuran database nya jadi lebih besar dari biasanya.

Persiapan Database

silahkan teman-teman buat database sendiri atau bisa menambahkan field baru untuk simpan gambar, berikut contoh nya :


disini saya buat table dengan nama tbcoba1 dengan isi [Nama, Alamat, Notlp dan Foto] oke sekarang lanjut ke RAD Studio nya yaps...

Mulai Project dengan Delphi



NB. Untuk Nama dari setiap komponen silahkan sesuaikan sendiri ya digambar hanya sekedar contoh saja.

Komponen yg di gunakan :
  • 3 buah [editbox] : Nama, Alamat dan No Telp
  • 6 buah [button] : Add, Cancel, Save, Delete, Close dan Open
  • 1 buah [image] : setting Stretch menjadi True agar gambar mengikuti ukuran komponen
  • 1 buah dbgrid : setting Read Only menjadi True
  • 1 buah open dialog (disini saya menggunakan devexpress untuk komponennya)



Komponen untuk konek ke database
  • TFDConnection (FireDac Komponen)

  • TFQuery (FireDac Komponen)

  • Data Source : Setting Properties Datasourcenya ke DS1 (sesuaikan dengan nama yg kalian buat)
Oke siap, sekarang pastikan komponen sudah semua dan tinggal ke bagian kodingnya lagi.

Script

//Script untuk simpan data ke database
procedure TForm1.bsimpanClick(Sender: TObject);
var
stream : tmemorystream;
begin
  stream := tmemorystream.Create;
  image1.Picture.Graphic.SaveToStream(stream);
  stream.Position := 0;
  q1.Append;
  q1.FieldByName('nama').AsString := edit1.Text;
  q1.FieldByName('alamat').AsString := edit2.Text;
  q1.FieldByName('notlp').AsString := edit3.Text;
  tblobfield(q1.fieldbyname('foto')).LoadFromStream(stream);
  stream.Free;
  q1.Post;
  if messageDLg('Tambah Data?',mtConfirmation,[Mbyes,MBno],0)=Mryes then
    begin
      kosongkan;
      edit1.SetFocus;
    end;
end;

//Script untuk Hapus Data
procedure TForm1.bhapusClick(Sender: TObject);
begin
if messageDlg('Apakah yakin data '+
  ''+q1.FieldByName('nama').AsString+' akan dihapus?',MTConfirmation,[MByes,MBno],0)=mrYes then
  begin
    q1.Delete;
    kosongkan;
  end;
end;

// Script Panggil data jika dbgrid di klik
procedure TForm1.DBGrid1CellClick(Column: TColumn);
var
  stream : tmemorystream;
  xjp: TJpegImage;
begin
  xjp := TJpegImage.Create;
  stream := tmemorystream.Create;
  tblobfield(Q1.FieldByName('foto')).SaveToStream(stream);
  stream.position := 0;
  xjp.LoadFromStream(stream);
  image1.Picture.Graphic := xjp;
  Edit1.Text := Q1.FieldByName('nama').AsString;
  Edit2.Text := Q1.FieldByName('alamat').AsString;
  Edit3.Text := Q1.FieldByName('notlp').AsString;
end;

// Script Button Open
procedure TForm1.btnopenClick(Sender: TObject);
begin
  if dxopen.Execute then
  begin
    image1.Picture.LoadFromFile(dxopen.FileName);
  end;
end;

// Script Kosongkan edit text
procedure TForm1.kosongkan;
var
  i:integer;
begin
  for i := 0 to ComponentCount -1 do
    begin
      if (Components[i] is TEdit) and (TEdit(Components[i]).Tag = 0) then
       Tedit(Components[i]).Text :=''
    end;
    image1.Picture := nil;
end;
Sekarang coba teman teman Run Project nya...semoga berhasil yaps

Post a Comment for "Simpan Gambar ke Database MySql dengan Delphi RAD Studio"