Menggunakan gambar atau foto dalam sebuah manajemen informasi tentu sangatlah membantu dalam upaya memudahkan pemakai untuk mengenali sebuah data, misalkan data karyawan dengan menampilkan foto karyawan, data barang dengan menampilkan data gambar barang dan lain sebagainya. Untuk itu dalam artikel ini saya akan membahas bagaimana menyimpan data gambar ke dalam database dengan VB6, sehingga secara multiuser kita dapat mengakses dari manapun tanpa melibatkan share folder untuk menyimpan file secara fisik. Dalam hal ini gambar secara nyata tersimpan ke dalam database yaitu pada field yang bertipe image.
ADODB.Stream
Dalam mengolah data gambar (menyimpan dan memanggil) dari dan ke dalam database SQL Server dengan VB6, kita dapat menggunakan fasilitas komponen ADODB.Stream, yang mana dengan komponen tersebut secara otomatis dapat mengkonversi data image (misalkan imgGambar.picture) ke dalam dan dari field database SQL Server bertipe image.Private Sub cmdFileGambar_Click()
On Error Resume Next
cmdlgFoto.InitDir = IIf(Trim(GetSetting("StokBarang", "File", "Gambar", "")) <> "", Trim(GetSetting("StokBarang", "File", "Gambar", cmdlgFoto.FileName)), App.Path)
cmdlgFoto.Filter = "All Graphics Files | *.JPG;*.GIF;*.BPM"
cmdlgFoto.ShowOpen
If Trim(cmdlgFoto.FileName) <> "" Then
Set imgFoto.Picture = LoadPicture(cmdlgFoto.FileName)
SavePicture imgFoto.Picture, App.Path + "\temp.jpg"
SaveSetting "StokBarang", "File", "Gambar", cmdlgFoto.FileName
End If
On Error GoTo 0
End Sub
Dalam contoh program tersebut saya membuat dua buah prosedur yang berfungsi menyimpan data gambar ke dalam database saat menyimpan data master barang dan memanggil gambar dari database untuk ditampilkan kedalam Form, pada saat memanggil data barang berdasar kode barang, seperti tampak dalam contoh kode program berikut ini:
Private Sub SaveFoto()
Dim RS As ADODB.Recordset
Dim MyStream As ADODB.Stream
Set RS = New ADODB.Recordset
Set MyStream = New ADODB.Stream
MyStream.Type = adTypeBinary
RS.Open "SELECT * FROM FileFotoBarang WHERE 1=0", oConnection.Server, adOpenStatic, adLockOptimistic
RS.AddNew
SavePicture imgNoImage.Picture, App.Path + "\NoImage.jpg"
MyStream.Open
If imgFoto.Picture <> 0 Then
MyStream.LoadFromFile App.Path + "\Temp.JPG"
Else
MyStream.LoadFromFile App.Path + "\NoImage.jpg"
End If
RS!KodeBarang = Trim(txtKodeBarang.Text)
RS!Foto = MyStream.Readaa
RS.Update
MyStream.Close
RS.Close
End Sub
Private Sub LoadFoto()
Dim RS As New ADODB.Recordset
Dim MyStream As New ADODB.Stream
MyStream.Type = adTypeBinary
RS.Open "Select * from FileFotoBarang WHERE KodeBarang = '" + Trim(txtKodeBarang.Text) + "'", oConnection.Server
If Not RS.EOF Then
MyStream.Open
MyStream.Write RS!Foto
MyStream.SaveToFile App.Path + "\Temp.JPG", adSaveCreateOverWrite
Set imgFoto.Picture = LoadPicture(App.Path + "\Temp.JPG")
MyStream.Close
Else
Set imgFoto.Picture = imgNoImage.Picture
End If
RS.Close
End Sub
Post a Comment