+62 812-1171-5379 Fast Respond

Menyimpan gambar kedalam database

Menyimpan gambar kedalam database

Hari ini kami sharing bagaimana cara menyimpan gambar kedalam database, sebernarnya apasaja fungsinya menyimpan gambar kedalam database mengingat apabila gambar disimmpan kedalam database membuat database menjadi berat.
Contoh penerapannya adalah gambar logo profile, foto pegawai, foto asset dan lain lain
Pertanyaan kedua adalah, bagaimana supaya tidak berat ketika dipanggil menggunakan adodataset atau adoquery Caranya adalah membatasi open sql all, pada umumnya adalah para beginner menggunakan perintah "select * from" (jangan gunakan perintah ini ) bisa diganti dengan "Select nama, alamat, handphone from t_pegawai".
Langsung praktek ya!!
silahkan buat tabel pada database anda, silahkan di copy paste :


CREATE TABLE `t_pegawai` (
  `Id` int(11) NOT NULL AUTO_INCREMENT,
  `nik` varchar(6) DEFAULT NULL,
  `nama_pegawai` varchar(100) DEFAULT NULL,
  `foto` blob,
  PRIMARY KEY (`Id`)
) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=latin1;

Dibawah ini adalah perintah untuk penyimpan data dan gambar.

Function TForm1.Simpandata: boolean;
var
  Filestream: TMemoryStream;
begin
  Result := False;
  Filestream := TMemoryStream.Create;
  Image1.Picture.Graphic.SaveToStream(Filestream);
  Filestream.Position := 0;

  MyQuery1.Append;
  MyQuery1.FieldByName('nik').AsString := EdtNIK.Text;
  MyQuery1.FieldByName('nama_pegawai').AsString := EdtNama.Text;
  TBlobField(MyQuery1.FieldByName('foto')).LoadFromStream(Filestream);
  Filestream.Free;
  MyQuery1.Post;

  Result := True;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  if Simpandata then
  begin
    ShowMessage('Data telah tersimpan');
    BersihForm;
  end;
end;


Nah, sekarang adalah bagaimana menampilkan gambar yang terdapat pada database.
perhatikan perintah dibawah ini:

procedure TForm1.DBGrid1CellClick(Column: TColumn);
var
    Stream: TStream;
    JPG: TJpegImage;
begin
    JPG := TJpegImage.Create;
    try
      Stream := MyQuery1.CreateBlobStream(MyQuery1.FieldByName('foto'), bmRead);
      try
          Image2.Picture.LoadFromStream(Stream);
      finally
          Stream.Free; // edited
      end;
    finally
      JPG.Free;
    end;

    EdtNamaPegawai_Show.Text := MyQuery1.FieldByName('nama_pegawai').AsString;
end;

Function TForm1.BersihForm: boolean;
begin
  Result := False;
  EdtNIK.Clear;
  EdtNama.Clear;
  EdtPathFoto.Clear;
  Image1.Picture := nil;
  Result := True;
end;


Supaya tidak penasaran silahkan Download