Dosen adalah pendidik profesional dan ilmuwan dengan tugas utama mentransformasikan, mengembangkan, dan menyebarluaskan ilmu pengetahuan, teknologi melalui pendidikan, penelitian, dan pengabdian kepada masyarakat (Permendikbud 49/2014 Pasal 1:14)

Minggu, 25 September 2011

Menyimpan jpg ke database

Seluruh kode yang ditulis di sini memerlukan unit DB dan jpeg sehingga harus dituliskan

uses DB, jpeg;

Cara untuk menyimpan file gambar ke dalam field "photo" bertipe text milik tabel dalam basis data SQL Server adalah sebagai berikut :

  1. Tambahkan komponen bernama OpenDialog1, ADOQuery1, Button1, dan Image1
  2. Pada event onClick komponen tombol Button1, tuliskan kode berikut :
procedure TFormPustaka.Button1Click(Sender: TObject);
var
FileStream: TFileStream;
BlobStream: TStream;
begin
OpenDialog1.Execute;
ADOQuery1.Edit;
try
BlobStream := ADOQuery1.CreateBlobStream(ADOQuery1.FieldByName('photo'),bmWrite);
FileStream := TFileStream.Create(OpenDialog1.FileName,fmOpenRead or fmShareDenyNone);
BlobStream.CopyFrom(FileStream,FileStream.Size);
FileStream.Free;
BlobStream.Free;
ADOQuery.Post; // menimpan gambar ke field "photo"
QDataPustakaAfterScroll(QDataPustaka); // memanggil event AfterScroll (di bawah)
except
ADOQuery1.Cancel;
end;
end;
end;


Cara untuk menampilkan data gambar yang merupakan isi field "photo" dengan menggunakan komponen ADOQuery1 dan Image1 adalah sebagai berikut :

  1. Pastikan properti string dari komponen ADOQuery1 mengandung SQL yang terhubung ke tabel yang memiliki field bertipe text.
  2. Pada event AfterScroll dari komponen ADOQuery1, tuliskan perintah berikut ini :
procedure ADOQuery1AfterScroll(DataSet: TDataSet);
var
JpegImage: TJPEGImage;
BlobStream: TStream;
begin
if (not ADOQuery1.FieldByName('photo').IsNull) then
begin
BlobStream:= ADOQuery1.CreateBlobStream(ADOQuery1.FieldByName('photo'),bmRead);
JpegImage := TJPEGImage.Create;
try
JpegImage.LoadFromStream(BlobStream);
Image1.Picture.Assign(JpegImage);
Image1.Visible := True; // ini tidak perlu jika Image1.Visible := False; tdk ditulis di bawah
finally
JpegImage.Free;
BlobStream.Free;
end;
end
else
Image1.Visible := False; // atau bisa juga Image1.Picture.Assign(nil);
end;

Tambahkan DBGrid, kemudian hubungkan dengan ADOQuery menggunakan DataSource. Setiap anda mengklik sel DBGrid, maka apabila field "photo" pada record tersebut mengandung gambar, akan muncul gambarnya di komponen image1.

Related Posts:

  • Menampilkan Informasi BIOS function GetBiosInfoAsText: string; var p, q: pchar; begin q := nil; p := PChar(Ptr($FE000)); repeat if q <> nil then begin if not (p^ in [#10, #13, #32..#126, #169, #184]) then begin if (p^ = #0) and (p - q >= 8) t… Read More
  • Nomor Serial BIOS uses SHA1, Base64; function GetHashedBiosInfo: string; var SHA1Context: TSHA1Context; SHA1Digest: TSHA1Digest; begin // Get the BIOS data SetString(Result, PChar(Ptr($F0000)), $10000); // Hash the string SHA1Init(SHA1Contex… Read More
  • Mematikan Mouse dan Keyboard selama 5 detik procedure TForm1.Button1Click(Sender: TObject) ; function FuncAvail (_dllname, _funcname: string; var _p: pointer): boolean; var _lib: tHandle; begin Result := false; _p := NIL; if LoadLibrary(PChar(_dllname)) = 0 then exit… Read More
  • Checksum BIOS function GetBiosCheckSum: string; var s: int64; i: longword; p: PChar; begin i := 0; s := 0; p := PChar($F0000); repeat inc(s, Int64(Ord(p^)) shl i); if i < 64 then inc(i) else i := 0; inc(p); until p > PChar($FFFFF); … Read More
  • Nomor Serial BIOS uses SHA1, Base64; function GetHashedBiosInfo: string; var SHA1Context: TSHA1Context; SHA1Digest: TSHA1Digest; begin // Get the BIOS data SetString(Result, PChar(Ptr($F0000)), $10000); // Hash the string SHA1Init(SHA1Contex… Read More

1 komentar :

Terima kasih atas kunjungan dan komentarnya