Menyimpan file disini sebenarnya bisa berupa berbagai macam file
seperti gambar (jpg/jpeg, bmp, gif, dll), pdf, doc, dll. Ada 3 cara
yang umum dilakukan oleh pemrogam untuk menyimpan data file ke dalam
database, yakni:
Cara 1 : Hanya menyimpan data lokasi/path file.
Cara ini sangat mudah dan hemat memori pada database. Kelemahannya
adalah proses banckup memerlukan usaha yang tidak sederhana dalam
mengatur/memrogammnya.
Cara 2 : Mengenkrip/encode data file (berdasarkan data biner).
Cara ini biasanya dilakukan oleh pemrogam yang belum tahu cara
menyimpan data file (biner) sehingga mengakali dengan cara merubah
data biner ke format yang mudah dimasukkan kedalam database (metode
encrypt). Biasanya menggunakan enkrip Base64. Cara ini adalah yang
paling lambat daripada dua cara disini dalam proses penyimpanan dan
menampilkannya kembali.
Cara 3 : Menyimpan file berdasarkan data binarinya.
Cara ini yang biasanya banyak dicari oleh pemrogram pada bahasa
program yang dikuasainya. Metode akan lebih lambat dari cara 1 dan
lebih cepat dari cara 2. Cara ke 3 inilah akan dibahas pada tutorial
ini.
Misal telah dibuat database.
Nama database = tesmasukkanfile
Nama Table = tesblob (hanya punya 1 kolom)
Nama Kolom = gambar (tipe data MEDIUMBLOB)
Contoh modul untuk koneksi ke database dengan nana “Dataku”.
' Gambas module file
Public db As New Connection
Public Function Koneksi() As Boolean
With db
.Close
.Type = "mysql"
.Host = "localhost"
.Login = "root"
.Password = "passwordku"
.Name = "tesmasukkanfile"
.Open
End With
Return True
Catch
Message.Warning("tidak terhubung kedatabase", "Ok")
Return False
End
Memasukkan file gambar (jpg) ke database MySql
' Gambas module file
Public Sub Main()
Dim DataGambar As String
Dataku.Koneksi
DataGambar = File.Load(System.User.Home &/ "Coba.png")
‘Sama dengan /home/pengguna/Coba.png. Boleh juga ambil dari
direktori lain
Dataku.db.Exec("INSERT INTO tesblob VALUES(&1)",
DataGambar)
End
Mengembalikan/menampilkan gambar dari database Mysql
' Gambas module file
Public Sub Main()
Dim Rs As Result
Dataku.Koneksi
Rs = Dataku.db.Exec("SELECT gambar FROM tesblob LIMIT 1")
‘Data yang diambil diletakkan di /tmp. Boleh juga diletakkan di direktori/folder lain
File.Save("/tmp/datayangdiambil.png", Rs!gambar)
‘Setelah diletakkan di /tmp, kemudian ditampilkan
Desktop.Open("/tmp/datayangdiambil.png", True)
‘Menghapus file data gambar tersebut
Kill "/tmp/datayangdiambil.png"
End
Mudah-mudahan dapat dipahami.
Tidak ada komentar:
Posting Komentar