GambarDatabase

Menyimpan Gambar dalam Database dengan VB6

Menyimpan Gambar dalam Database dengan VB6. 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.

Dan untuk melakukan upload data gambar dari file gambar yang tersedia kedalam komponen Image atau PictureBox, kita dapat menggunakan komponen CommonDialog, sehingga akan sangat memudahkan operator dalam mencari keberadaan file gambar yang dimasuk. Dari event Cick pada komponen CommonDialog tersebut, kita cukup tuliskan kode program seperti berikut ini:

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.Read
    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

Struktur tabel yang digunakan untuk penyimpanan data identitas barang dan data gambar sebaiknya dibedakan, karena hal ini akan memudahkan dalam melakukan manajemen data.


Sharing is caring!

Tinggalkan Balasan