Ada yang nanya di milis mysql-indonesia@googlegroups.com tentang bagaimana caranya nginstall MyODBC secara otomatis dalam mendistribusikan aplikasi kita. Kadang, ketika kita memaketkan produk software kita (platform desktop, windows) -- kita ngga bisa menjamin apakah di komputer client sudah terinstall MyODBC yang diperlukan supaya aplikasi kita bisa connect ke database MySQL (tentunya bagi yang mempergunakan ODBC sebagai bridge koneksi. Kalo yang makae native API seperti vbmysqldirect, MyDAC, dbExpress, atau MySQL Connector yang lain -- ya ngga perlu MyODBC).
Gw jadi ingat jaman-jaman kelam dulu, pas masih develop pakae VB6, ribet bangedd rasanya 'menginstallkan' pre-requisites aplikasi kita ke client macam OCX, DLL, flash player plugins, dan tentu saja.. MyODBC. Tapi sejak gw mulai bosan ama keribetan itu -- gw akhirnya riset mengenai teknik-teknik membuat instalasi yang membuat gw sempet terjerembab 'sedikit alih profesi' jadi Deployment Engineer di tim gw dulu. Tentu saja gw musti memastikan bahwa aplikasi gw ketika di-distribusikan ngga bakal gagal di-execute selain di kompie gw sendiri, termasuk diantaranya menjalin koneksi dengan MySQL melalui MyODBC.
Di artikel kali ini gw mencoba mengupas mengenai teknik-teknik 'memaksakan' client menginstall secara otomatis MyODBC supaya program kita bisa running well.caranya (gw asumsikan kita akan redistribute-kan MyODBC 5.1) :
1. di installer loe, u copy-kan file2 berikut ke %SYSDIR% (terserah sih mo dimana sebenarnya):
a) libmysql.dll
b) myodbc5.dll
c) myodbc5.lib
d) myodbc5S.dll
e) myodbc5S.lib
2. Lakukan install driver manual dengan nge-add registry berikut ini :
classkey = HKEY_LOCAL_MACHINE
sectionkey = "SOFTWARE\ODBC\ODBCINST.INI\
trus bikin beberapa key yaitu :
a) nama key = "Driver"
tipe = REG_SZ
value = "C:\WINDOWS\System32\myodbc5.
b) nama key = "Setup"
tipe = REG_SZ
value = "C:\WINDOWS\System32\myodbc5S.
c) nama key = "UsageCount"
tipe = REG_DWORD
value = 1
3. Langkah terakhir, lakukan register driver ke ODBC driver, juga dgn maen-maen registry berikut :
classkey = HKEY_LOCAL_MACHINE
sectionkey = "SOFTWARE\ODBC\ODBCINST.INI\
bikin key :
nama = "MySQL ODBC 5.1 Driver"
tipe = REG_SZ
value = "installed"
udah. itu cara bikin installer sendiri utk MyODBC 5.1
kalo utk versi MyODBC 3.51, silakan sesuaikan sendiri (tapi buat apa makae 3.51 hare gene?)
bisa loe adopsi di :
- jalankan ntu script di setiap app.initialization (tentu cek dulu, execute cuman kalo if not exists)
- atau embedd ke dalam script installer loe (semua installer pastinya bisa nge-manipulate registry kan?)
- atau bikin program exe sendiri yang akan menjalankan "silent-install" ntu proses, trus masukin ke script installer loe n loe program supaya ntar installer akan jalanin otomatis ntu myodbc-silent-installer setelah proses nginstall aplikasi loe selesai.
Bikin installer-nya pakae NSIS (Nullsoft Scriptable Install System). Berhubung output installer dia bukan berbasis *.msi, loe bisa lakukan proses instalasi paralel (installer dalam installer) dengan file-file setup laen (pre-requisites software) yg mungkin elo butuhkan dalam redistribute aplikasi loe (misal : driver, connector, plugins, codec, bahkan automatic-install server mysql sendiri!).
Cara :
1. siapkan installer MySQL ODBC 5.1 terbaru (anggap namanya : mysql-connector-odbc-5.1.5-
2. sisipkan di script NSIS loe begini :
SetOutPath "$TEMP"
SetOverwrite On
File "..\resources\mysql-connector-
ExecWait 'msiexec /i "$TEMP\mysql-connector-odbc-5.
3. compile script installer loe untuk menghasilkan 1 file installer (aplikasi loe + prerequisites-nya)
Penjelasan Script NSIS:
baris pertama, itu akan melakukan change-dir ke direktori tujuan ekstrak sebuah file (dalam hal ini TEMP DIR)
baris kedua, itu akan melakukan flagging kalo file yg akan di-ekstrak udah ada, dia akan di-overwrite
baris ketiga, itu meng-copy-kan dari installer berupa file setup mysql-connector-odbc-5.1.5- win32.msi ke TEMP DIR. parameter dari File itu adalah alamat dari paket instalan mysql-connector-odbc-5.1.5- win32.msi ketika installer sedang dibentuk
baris keempat, itu akan melakukan eksekusi file installer mysql-connector-odbc-5.1.5- win32.msi -- efeknya, ntar user pas nginstall aplikasi loe, dia akan "dipaksa" masuk ke installer MyODBC. ExecWait adalah sebuah mekanisme shell-execute yang akan menunggu proses sampai proses instalasi MyODBC selesai dijalanin user, baru kemudian lanjut ke proses install sisanya.
baris kedua, itu akan melakukan flagging kalo file yg akan di-ekstrak udah ada, dia akan di-overwrite
baris ketiga, itu meng-copy-kan dari installer berupa file setup mysql-connector-odbc-5.1.5-
baris keempat, itu akan melakukan eksekusi file installer mysql-connector-odbc-5.1.5-
kelebihan dari cara gampang ini?
- loe gag perlu pusing2 ria maen2 registry (seperti cara "manual" gw di atas -- walo ada kelebihannya juga cara manual ini : loe jadi ngerti struktur registrasi ODBC Driver di sistem operasi loe. Jadi klo mo pakae connector apapun utk connect ke DBMS apapun: mudah!)
- loe bisa replace source install-an mysql odbc versi berapapun dgn mudah
- file installer yang kelak akan di-distribusikan ke user cuman 1 doank. udah all in one.
Happy exploring...
_______________________

Rizky Prihanto
Software Architect PT Cinox Media Insani
thanks tip nya bro........
BalasHapusmantap ... dah lama nyari artikel kayak gini, thanks berat
BalasHapusMantaaapp... thx for sharing sob.. :))
BalasHapusMengobati wasir internal
BalasHapusWhat is merit casino? | xn--o80b910a26eepc81il5g.online
BalasHapusWhat 1xbet is merit casino? What is merit casino? What is merit casino? How many games 카지노 does the game pay? How many bonuses are in a 메리트카지노총판