Step by Step Menjadi Programmer Handal Dengan PDF
Step by Step Menjadi Programmer Handal Dengan PDF
Com
Copyright © 2003 IlmuKomputer.Com
Lisensi Dokumen:
Copyright © 2003 IlmuKomputer.Com
Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan
disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat
tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang
disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang,
kecuali mendapatkan ijin terlebih dahulu dari IlmuKomputer.Com.
FileStream adalah sebuah fitur baru pada SQL Server 2008 keatas untuk menyimpan
file “unstructured data” pada database. Berikut merupakan contoh beberapa data
untuk “unstructured data”.
- Character Large Objects (CLOB) : Email Body
- Binary Large Objects (BLOB): Dokumen file (word dan excel), file gambar,
multimedia file (music dan video).
Sesuai dengan judul, pada artikel ini hanya akan membahas bagaimana menyimpan
file gambar dengan menggunakan FileStream. Sebelum SQL Server 2008 (SQL
Server 2005) untuk menyimpan CLOB data kita akan menggunakan tipe data TEXT
(atau NTEXT untuk unicode). Sedangkan BLOB kita menggunakan tipe data BLOB.
Semua tipe data diatas masih tersedia pada SQL Server 2008, tetapi kita dapat
menggunakan tipe-tipe data yang baru seperti VARCHAR (MAX) untuk TEXT,
NVARCHAR (MAX) untuk NTEXT dan VARBINARY (MAX) untuk BLOB.
Sebelum menggunakan FileStream, untuk menyimpan gambar pada suatu aplikasi
yang kita buat, biasanya kita akan menyimpan file gambar tersebut kedalam table
(menggunakan BLOB) atau menyimpan file gambar tersebut kedalam folder atau
tempat yang telah kita sediakan terlebih dahulu, sehingga pada table hanya kita isi
kan nama file atau alamat dimana file itu disimpan. Ada beberapa poin yang harus di
ketahui dalam menggunakan FileStream.
- Binary data disimpan sebagai data file di luar database
- File tersebut data di akses melalui WIN32 API
- Dapat menyimpan file dengan size lebih besar dari 2 GB (VARBINARY (MAX))
- Dapat menggunakan Transact SQL
Untuk lebih jelasnya, kita akan mencoba membuat sebuah aplikasi penyimpanan
gambar dengan menggunakan VB 10 sebagai bahasa pemograman nya.
Ikuti langkah-langkah berikut ini.
Pastikan sudah terinstall SQL Server 2008 atau yang terbaru pada PC/Laptop.
Mengaktifkan FileStream
Sebelum menggunakan fitur ini, terlebih dahulu kita harus mengaktifkan
FileStream setting pada SQL Server, dengan cara sebagai berikut.
- Start > All Program > Microsoft SQL 2008 R2 > Configuration Tools > SQL
Server Configuration Manager
- Selanjutnya pada panel sebelah kanan, klik kanan pada SQL Server yang akan
di aktifkan FileStream. Lalu klik Properties
- Selanjutnya buka SQL Server Mangement Studio, lalu klik New Query untuk
menampilkan query editor.
tersebut akan terdapat folder sesuai dengan banyak nya kolom yang
menggunakan FileStream. Sebagai contoh Table A dan B menggunakan
FileStream. Dan Table A memiliki 1 kolom dan Table B 2 kolom yang
menggunakan FileStream. Maka didalam folder table A akan terdapat 1 folder
sedangkan folder table B akan terdapat 2 folder.
- Selanjutnya adalah membuat sebuah table yang menggunakan FileStream
sebagai berikut.
- Sampai dengan tahap ini, kita sudah memiliki sebuah table pada database
yang kita buat diatas.
- Pada aplikasi ini kita akan menggunakan LINQ to SQL untuk proses CRUD
pada database.
- Selanjutnya Add New Item pada project lalu pilih LINQ to SQL Classes
selanjutnya ganti Name pada textbox menjadi “dcFileStream.dbml”.
- Buka jendela Database Explorer (Ctrl+Alt+S), lalu klik kanan pada “Data
Connection” lalu pilih “Add Connection”.
- Pilih Server Name dan database (Latihan) yang telah kita buat sebelum nya.
Klik “Test Connection” untuk mengecek koneksi, jika berhasil klik button
OK.
- View Code pada Form 1, dan ketikkan Imports System.IO pada awal baris.
- Kita akan membuat sebuah procedure untuk merfresh form seperti dibawah.
Try
OFD.Filter = "Image Files (*.JPEG, *.jpg, *.bmp, *.gif,
*.png)|*.JPEG; *.jpg; *.bmp; *.gif; *.png"
If OFD.ShowDialog = Windows.Forms.DialogResult.OK Then
Dim strFileLocation As String = OFD.FileName
txtFileName.Text = OFD.SafeFileName
pbImage.Image = Image.FromFile(strFileLocation)
End If
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Exclamation, "FileStream")
End Try
Sesuai dengan nama nya, button browse ini berfungsi untuk mencari gambar
dan menampilkan gambar tersebut kedalam sebuah PictureBox. Coba
jalankan program dan klik button browse lalu cari gambar yang di inginkan.
Function diatas digunakan untuk mendapatkan Binary dari gambar yang kita
pilih sebelum nya. Yang nantinya akan digunakan pada procedure
penyimpanan data, seperti sintaks dibawah.
Seperti kita lihat pada sintaks diatas, pada Property Picture menggunakan
function “GetImageBinary” untuk mendapatkan valuenya.
- Selanjutnya klik ganda button Save dan ketikkan sintaks seperti dibawah.
Try
If pbImage.Image Is Nothing Then
Throw New Exception("Masukkan gambar yang akan disimpan")
End If
SaveImage()
Displaydata()
ClearForm()
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Exclamation, "FileStream")
End Try
Try
'mengambil value dari kolom PicId (GUID) untuk baris yang di klik
Dim picId As Guid = DirectCast(DataGridView1.CurrentRow.Cells(0).Value, Guid)
Using db As New dcFileStreamDataContext
Dim hasil = (From c In db.GetTable(Of tblImage)() _
Where c.PicId.Equals(picId) Select c).ToList
If hasil.Count = 0 Then
Throw New Exception("Data tidak ada")
End If
db.tblImages.DeleteOnSubmit(hasil.First)
db.SubmitChanges()
End Using
pbImage.Image = Nothing
Displaydata()
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Exclamation, "FileStream")
End Try
Untuk melakukan proses delete ini, kita memerlukan sebuah value dari
kolom PicId. Oleh karena itu sebelum menekan button delete pastikan klik
(pilih) terlebih dahulu baris yang akan di hapus pada DataGridView.
- Sampai tahap ini, kita telah berhasil membuat proses simpan dan hapus data
pada form. Langkah selanjutnya adalah, menampilkan data pada saat baris
di DataGridView di pilih (klik).
- Klik DataGridView, lalu pada Properties klik button events, dan klik ganda
CellClick
Try
pbImage.Image = Nothing
If DataGridView1.Rows(e.RowIndex).Cells("Picture").Value <> Nothing Then
Dim imageBytes() As Byte =
(DataGridView1.Rows(e.RowIndex).Cells("Picture").Value).ToArray
Dim newImage As Image
Using ms As New MemoryStream(imageBytes, 0, imageBytes.Length)
ms.Write(imageBytes, 0, imageBytes.Length)
newImage = Image.FromStream(ms, True)
End Using
pbImage.Image = newImage
End If
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Exclamation, "FileStream")
End Try
Try
Displaydata()
DataGridView1.ShowCellToolTips = False
DataGridView1.Columns("Picture").Visible = False
DataGridView1.Columns("PicId").Visible = False
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Exclamation, "FileStream")
End Try
Pada sintaks ini di gunakan pada saat program pertama kali tampil, program
akan menampilkan data pada DataGridView dan menyembunyikan kolom
Picture dan PicID.
Sampai tahap ini kita telah selesai membuat sebuah aplikasi penyimpanan
gambar pada database dengan memanfaatkan fungsi FileStream pada SQL
Server 2008 R2. Dengan adanya fungsi ini akan menambah pilihan kita jika
menghadapi kasus seperti penyimpanan unstructured data.
Semoga artikel ini dapat menambah wawasan kita semua khusus nya penulis
sendiri.
Wassalam.
☺☺☺
Biografi Penulis.
Referensi
1. www.msdn.microsoft.com
2. www.planetsourcecode.com
3. www.codeproject.com
4. www.aspnet.com
Masih banyak lagi referensi yang ada di Intenet. Anda tinggal cari di www.Google.com.
Dengan kata kunci “tutorial VB.Net”