Pada pokok bahasan ini kita akan mempelajari bagaimana menghubungkan aplikasi MFC dengan database. Sebagai contoh, buat database menggunakan MS Access seperti contoh pada gambar 1 berikut untuk database perpustakaan dengan tabel buku. Simpan file access tersebut dengan tipe .mdb.
Gambar 1. Membuat database dengan MS Access
Untuk menghubungkan database tersebut dengan aplikasi MFC yang akan kita buat, kita memerlukan koneksi ODBC (Open Database Connection). Fitur ODBC ini dapat anda temukan dengan mengakses Control Panel pada windows anda, kemudian pilih Administrative tools dan pilih menu Data Source (ODBC).
Gambar 2. Mengakses Fitur ODBC
Buat koneksi baru dengan tombol add kemudian pilih driber MS Access.
Gambar 3. Membuat koneksi ODBC
Isi nama data source kemudian pilih database yang akan digunakan.
Gambar 4. Setting koneksi ODBC
Setelah melakukan setting koneksi ODBC di atas maka koneksi ODBC anda telah siap untuk digunakan pada aplikasi MFC. Langkah selanjutnya tentu saja adalah membuat project MFC baru. Untuk koneksi dengan database, MFC menyediakannya pada tipe aplikasi single document.
Gambar 5. Tipe aplikasi Single Document untuk aplikasi database
Setting database support dengan memilih Database view without file support sebab kita tidak belum menghubungkan dengan file lain seperti file dokumen untuk laporan. Pilih client type ODBC kemudian tekan tombol Data Source, pilih koneksi ODBC yang telah anda buat sebelumnya dan pilih tabel yang akan digunakan.
Gambar 6. Setting database Support
Setelah melakukan setting untuk database support maka akan terbentuk beberapa class pembentuk aplikasi database. Apabila anda menekan tombol finish akan muncul pesan warning yang mengingatkan bahwa pada aplikasi yang anda buat terdapat code yang berisi password ke database. Untuk sementara kita abaikan dulu pesan tersebut.
Gambar 7. Pesan warning pada akhir pembuatan aplikasi database
Tampilkan kotak dialog yang telah terbentuk melalui resource view kemudian buat tampilan seperti berikut:
Gambar 8. Kotak dialog aplikasi database
Coba jalankan aplikasi, akan ada pesan error dan apabila anda akses letak error tersebut mengarah pada warning terhadap adanya password yang kita temui sebelumnya. Sementara hal ini kita abaikan dengan membuat comment pada line code program tersebut menggunakan //.
Gambar 9. Menangani pesan warning/error untuk security issue
Setelah mengangani masalah security issue tersebut, apabila anda jalankan aplikasi kembali maka akan berhasil, akan tetapi belum ada data yang ditampilkan pada edit box sebab edit box yang kita buat belum terhubung dengan database.
Buka file set.h maka anda akan menemukan variabel data yang terbentuk secara otomatis dan telah terhubung dengan database.
Gambar 10. Variabel data dari database
Untuk menghubungkan variabel tersebut dengan edit box yang telah kita buat pada kotak dialog, bukalah file view.cpp kemudian akses fungsi DoDataExchange. Masukkan kode program berikut pada fungsi tersebut.
DDX_FieldText(pDX, IDC_EDIT1, m_pSet->m_ID, m_pSet);
DDX_FieldText(pDX, IDC_EDIT2, m_pSet->m_judul_buku, m_pSet);
DDX_FieldText(pDX, IDC_EDIT3, m_pSet->m_stok, m_pSet);
Gambar 11. Menghubungkan edit box dengan database
Perhatikan bahwa kode program tersebut menghubungkan antara id dari edit box pada kotak dialog dengan variabel dataset.
Jalankan aplikasi anda, maka edit box anda akam menampilkan data dari database. Perhatikan anda bisa penggunakan menu toolbar untuk mengakses data lainnya.
Gambar 12. Edit box terhubung dengan database
Perhatikan bahwa ukuran kotak dialog perlu diubah agar tidak terlalu besar. Untuk mengubahnya buka file MainFrm.cpp dan masukkan code program berikut pada fungsi OnCreate dan PreCreateWindow.
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
.
.
.
// TODO: Delete these three lines if you don't want the toolbar to be dockable
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndToolBar);
//Set posisi dan nama kotak dialog
this->CenterWindow();
this->SetWindowText(_T("Sistem Administrasi Perpustakaan - Data Buku"));
return 0;
}
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
//Set ukuran kotak dialog dan title
cs.cx = 500;
cs.cy = 450;
cs.style &= ~FWS_ADDTOTITLE;
return TRUE;
}
Jalankan kembali aplikasi anda untuk melihat tampilan yang baru















