Wednesday, February 24, 2010

Visual Basic, MySQL, dan Crystal Report

Sebelum open source, orang-orang banyak menjatuhkan pilihannya pada SQL Server yang merupakan salah satu produk dari Microsoft untuk program-program berbasis Client Server.Berbicara tentang Microsoft berarti kita berbicara dengan uang karena sifatnya berbayar yang harganya bagi sebagaian orang mungkin sangat mencekik leher.
Namun sejak populernya sistem operasi operasi open source berbasis Unix maupun Linux para programmer berusaha untuk membuat satu software database baru yang kemampuannya sama dengan SQL Server hingga muncullah MySQL.

Berbeda dengan SQL Server, MySQL bersifat gratis yang berarti setiap orang bebas menggunakan, menduplikasikan, bahkan menyebarluaskannya tanpa takut dijerat Undang-Undang Hak Kekakayan Intelektual (HaKI). Meski awalnya hanya digunakan bagi para pengguna Linux, namun kini program gratisan itu telah bisa digunakan oleh para pengguna Windows.

Meski gratisan namun seperti produk-produk berbasis Linux lainnya, pengguna tidak perlu meragukan kemampuan MySQL. Tidak jauh berbeda dengan SQL Server, MySQL sendiri juga masih menggunakan query yang sama persis SQL Server sehingga para pengguna yang sudah terbiasa menggunakan SQL Server tidak perlu ragu lagi bermigrasi menggunakan MySQL yang gratis tersebut.

Berbekal dari software pemberian teman, penulis pun mencoba untuk menggunakan produk gratisan tersebut. Program kecil stand alone yang sebelumnya penulis rancang sendiri menggunakan bahasa pemrograman Visual Basic 6.0 di tempat penulis bekerja yang sebelumnya menggunakan Microsoft Access sebagai database pun coba penulis rubah menggunakan MySQL sehingga mendukung Client Server.

Sebagai bahan persiapan lainnya, penulis mencoba googling di internet. Dan akhirnya mendapatkan driver ODBC MySQL sehingga dapat digunakan di Visual Basic 6.0. Selain itu karena penulis belum begitu paham menggunakan query SQL, penulis mencoba mendapatkan GUI MySQL sehingga penulis tidak perlu lagi mengetikkan query dari SQL. Anda juga bisa menggunakan PHPMyAdmin.

Di program tersebut, penulis hanya perlu merubah koneksi ADO yang sebelumnya menggunakan driver Microsot Access. Berikut cuplikan kodenya:

Dim Db As Connection
Dim Rs As Recordset
Dim serverip As String
Dim Port As String
Dim datebasename As String
Dim user As String
Dim Password As String

Sub ConnectDb() ‘prosedur yang digunakan untuk mengkoneksikan database
Set Db = New Connection
Set Rs = New Recordset
Db.CursorLocation = adUseClient

serverip = "localhost" ‘lokasi server database
Port = "3306" ‘port default
datebasename = "dbtiram"
user = "root" ‘username yang digunakan di MySQL
Password = "pwd" ‘password yang anda gunakan di MySQL
Db.ConnectionString = "DRIVER={MySQL ODBC 3.51 Driver};" _
& "SERVER=" & serverip & ";" _
& " DATABASE=" & datebasename & ";" _
& " PORT=" & Port & ";" _
& "UID=" & user & ";PWD=" & Password & "; OPTION=3"
Db.Open
End Sub

Masalah baru muncul, laporan yang sebelumnya penulis gunakan menggunakan Crystal Report tidak mendukung MySQL untuk penggunaan beberapa tabel dalam satu laporan karena selalu muncul pesan Error Database Detection. Dari keterangan yang saya peroleh dari internet, bahwa error ini disebabkan karena ODBC nya MySQL tidak mendukung syntax INNER JOIN dan OUTER JOIN yang dibuat Crystal Report.
Namun hanya dengan beberapa langkah yang penulis dapatkan melalui internet, masalah ini pun teratasi dengan mengedit registry dan menambahkan nilai “SQL2OuterJoin” di bagian Crystal Report.

Berikut langkah-langkahnya :

1. Buka regedit (Bagi yang belum caranya sebagai berikut: Start – Run – Regedit – Enter )
2. Cari: HKEY_CURRENT_USER\Software\Seagate Software\Crystal Reports\DatabaseOptions\ODBC
3. Buat key baru : Klik kanan pada ODBC, pilih New, Key
4. Beri Nama : OuterJoin
5. Di Dalam Key OuterJoin, buat New String Value
6. Beri nama : SQL2OuterJoin
7. Klik kanan pada String Value SQL2OuterJoin, pilih Modify
8. Isikan : libmyodbc3
9. Selesai. Restart komputer anda…..selamat mencoba…



No comments: