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 proses yang sedang berjalan di Windows function EnumProcess(hHwnd: HWND; lParam : integer): boolean; stdcall; var pPid : DWORD; title, ClassName : string; begin //if the returned value in null the //callback has failed, so set to false and exit. if (hHwnd=NULL) … 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
  • Mengambil nama komputer dan penggunanya function GetComputerNetName: string; var buffer: array[0..255] of char; size: dword; begin size := 256; if GetComputerName(buffer, size) then Result := buffer else Result := '' end; Function GetUserFromWindows: string; Var … Read More
  • Mematikan ALT+TAB, CTRL+ESC, CTRL+ALT+DEL procedure SystemKeys(Disable: Boolean) ; var OldVal : LongInt; begin SystemParametersInfo(SPI_SCREENSAVERRUNNING, Word(Disable), @OldVal, 0) ; end; … Read More

1 komentar :

Terima kasih atas kunjungan dan komentarnya