Source Code Upload Gambar Di Database

Embed Size (px)

DESCRIPTION

VB6

Citation preview

Option ExplicitDim DB As New ADODB.Connection'*// Pada form_load tambahkan syntax untuk meload databasenyaPrivate Sub Form_Load()DB.Open "Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;" & _"Data Source=C:\dbaImage.mdb"End Sub'*// Selanjutnya kita buat fungsi untuk mengkonversi gambar kedalam _bentuk data.Function ConvImage(NamaFile As String, ByRef ErrRet As Long) As Byte()On Error GoTo SalahDim UkuranFile As LongDim imgData() As Byte'*// mendapatkan besar file yang akan di load dengan fungsi FileLenUkuranFile = FileLen(NamaFile)'*// Periksa Besar File yang di loadIf UkuranFile > 0 Then'*// Lakukan ReDim variable array sesuai dengan ukuran file yang _diloadReDim imgData(UkuranFile) As Byte'*// Nah disini kita memanipulasi gambar untuk dimasukan ke _database. Sebelumnya kita load gambar tsb dari file, _kemudian masukan byte demi byte ke variable array dengan _metode GETOpen NamaFile For Binary As #1Get #1, , imgDataClose #1'*// Setelah berhasil mendapatkan data tsb, kita lakukan _pemindahan data ke fungsi ConvImageConvImage = imgData'*// Kemudian beri tanda dgn nilai 0, bahwa tidak ada ErrorErrRet = 0Else'*// Beri tanda, bahwa ada ErrorErrRet = 1End IfExit FunctionSalah:'*// Beri tanda, bahwa ada ErrorErrRet = Err.NumberEnd Function'*// Selanjutnya Buat Fungsi untuk menampilkan gambarFunction TampilImage(imgData() As Byte, ByRef ErrRet As Long) _As PictureOn Error GoTo SalahIf UBound(imgData) Then '*// Cek besar data > 0Dim hFile As String'*// Periksa apakah file img.tmp ada pada directory C:hFile = Dir("C:\img.tmp", vbNormal)'*// Jika ada, kita hapus terlebih dahulu dengan fungsi KillIf hFile "" Then Kill "C:\img.tmp"'*// Selanjutnya kita buat file penampung gambar dengan data _yang diterima dari variable imgDataOpen "C:\img.tmp" For Binary As #1Put #1, , imgDataClose #1'*// Setelah file dibuat, kita coba untuk memindahkannya kedalam _fungsiSet TampilImage = LoadPicture("C:\img.tmp")'*// Beri tanda bahwa file berhasil di loadErrRet = 0Else'*// Beri tanda, bahwa ada ErrorErrRet = 1End IfExit FunctionSalah:'*// Beri tanda, bahwa ada ErrorErrRet = Err.NumberEnd Function'*// Setelah dua fungsi diatas dibuat, kita coba dengan menyimpan _sebuah data kedalam database.Private Sub Command1_Click()Dim ErrRet As Long, imgData() As ByteDim Rc As New ADODB.Recordset'*// Melakukan pengisian variable imgData dengan menggunakan fungsi _ConvImage dengan parameter yang dikirim. _Jangan lupa rubah nama file gambar yang akan di loadimgData = ConvImage("C:\vbBeGo\lunatic.bmp", ErrRet)'*// Dikarenakan disini kita menggunakan Type OleObject maka metode _penyimpanan data tidak menggunakan Query melainkan langsung _memanggil nama table nya.Rc.Open "pegawai", DB, 3, 3If ErrRet = 0 Then'*// Buat data baru dengan menggunakan perintah AddNewRc.AddNew'*// Isi pada fieldRc.Fields("NRP") = "001"Rc.Fields("Photo").AppendChunk imgData()'*// Simpan DataRc.UpdateEnd IfRc.CloseEnd Sub'*// Setelah melakukan proses penyimpanan data, kita coba untuk _menampilkannya.Private Sub Command3_Click()Dim ErrRet As Long, imgData As StdPictureDim Rc As New ADODB.Recordset'*// Kita panggil data yang kita simpan tadi dengan menggunakan Query _dengan NRP = 001Rc.Open "Select * from Pegawai Where NRP='001'", DB, 3, 3If Not Rc.EOF ThenSet imgData = TampilImage(Rc("Photo").GetChunk( _Rc("Photo").ActualSize), ErrRet)If ErrRet = 0 Then'*// Kita load gambar dari file ke Object Image1Set Image1.Picture = imgDataEnd IfEnd IfEnd Sub