Bagikan melalui


MFC: Menggunakan Kelas Database dengan Dokumen dan Tampilan

Anda dapat menggunakan kelas database MFC dengan atau tanpa arsitektur dokumen/tampilan. Topik ini menekankan bekerja dengan dokumen dan tampilan. Ini menjelaskan:

Untuk alternatif, lihat MFC: Menggunakan Kelas Database Tanpa Dokumen dan Tampilan.

Menulis Aplikasi Berbasis Formulir

Banyak aplikasi akses data didasarkan pada formulir. Antarmuka pengguna adalah formulir yang berisi kontrol tempat pengguna memeriksa, memasukkan, atau mengedit data. Untuk membuat formulir aplikasi Anda berbasis, gunakan kelas CRecordView. Saat Anda menjalankan Wizard Aplikasi MFC dan memilih jenis klien ODBC di halaman Dukungan Database, proyek menggunakan CRecordView untuk kelas tampilan.

Dalam aplikasi berbasis formulir, setiap objek tampilan rekaman menyimpan penunjuk ke CRecordset objek. Mekanisme pertukaran bidang rekaman kerangka kerja (RFX) bertukar data antara kumpulan rekaman dan sumber data. Mekanisme pertukaran data dialog (DDX) bertukar data antara anggota data bidang objek kumpulan rekaman dan kontrol pada formulir. CRecordView juga menyediakan fungsi handler perintah default untuk menavigasi dari rekaman ke rekaman pada formulir.

Untuk membuat aplikasi berbasis formulir dengan wizard aplikasi, lihat Membuat Aplikasi MFC Berbasis Formulir dan Dukungan Database, MFC Application Wizard.

Untuk diskusi lengkap formulir, lihat Tampilan Rekaman.

Menggunakan Recordset dalam Dokumen dan Tampilan

Banyak aplikasi berbasis formulir sederhana tidak memerlukan dokumen. Jika aplikasi Anda lebih kompleks, Anda mungkin ingin menggunakan dokumen sebagai proksi untuk database, menyimpan CDatabase objek yang tersambung ke sumber data. Aplikasi berbasis formulir biasanya menyimpan penunjuk ke objek recordset dalam tampilan. Jenis aplikasi database lainnya menyimpan kumpulan rekaman dan CDatabase objek dalam dokumen. Berikut adalah beberapa kemungkinan untuk menggunakan dokumen dalam aplikasi database:

  • Jika Anda mengakses kumpulan rekaman dalam konteks lokal, buat CRecordset objek secara lokal dalam fungsi anggota dokumen atau tampilan, sesuai kebutuhan.

    Mendeklarasikan objek recordset sebagai variabel lokal dalam fungsi. Teruskan NULL ke konstruktor, yang menyebabkan kerangka kerja membuat dan membuka objek sementara CDatabase untuk Anda. Sebagai alternatif, teruskan penunjuk ke CDatabase objek. Gunakan kumpulan rekaman dalam fungsi dan biarkan dihancurkan secara otomatis saat fungsi keluar.

    Saat Anda meneruskan NULL ke konstruktor kumpulan rekaman, kerangka kerja menggunakan informasi yang dikembalikan oleh fungsi anggota kumpulan rekaman GetDefaultConnect untuk membuat CDatabase objek dan membukanya. Panduan diterapkan GetDefaultConnect untuk Anda.

  • Jika Anda mengakses kumpulan rekaman selama masa pakai dokumen Anda, sematkan satu atau beberapa CRecordset objek di dokumen Anda.

    Buat objek recordset baik saat Anda menginisialisasi dokumen atau sesuai kebutuhan. Anda mungkin menulis fungsi yang mengembalikan penunjuk ke kumpulan rekaman jika sudah ada atau membangun dan membuka kumpulan rekaman jika belum ada. Tutup, hapus, dan buat ulang kumpulan rekaman sesuai kebutuhan, atau panggil fungsi anggotanya Requery untuk me-refresh rekaman.

  • Jika Anda mengakses sumber data selama masa pakai dokumen Anda, sematkan CDatabase objek atau simpan penunjuk ke CDatabase objek di dalamnya.

    Objek CDatabase mengelola koneksi ke sumber data Anda. Objek dibangun secara otomatis selama konstruksi dokumen, dan Anda memanggil fungsi anggotanya Open saat Anda menginisialisasi dokumen. Saat Anda membuat objek kumpulan rekaman dalam fungsi anggota dokumen, Anda meneruskan penunjuk ke objek dokumen CDatabase . Ini mengaitkan setiap kumpulan rekaman dengan sumber datanya. Objek database biasanya dihancurkan saat dokumen ditutup. Objek recordset biasanya dihancurkan saat keluar dari cakupan fungsi.

Faktor-Faktor Lain

Aplikasi berbasis formulir sering kali tidak memiliki penggunaan apa pun untuk mekanisme serialisasi dokumen kerangka kerja, sehingga Anda mungkin ingin menghapus, menonaktifkan, atau mengganti perintah Baru dan Buka pada menu File . Lihat artikel Serialisasi: Serialisasi vs. Input/Output Database.

Anda mungkin juga ingin memanfaatkan banyak kemungkinan antarmuka pengguna yang dapat didukung kerangka kerja. Misalnya, Anda dapat menggunakan beberapa CRecordView objek di jendela pemisah, membuka beberapa kumpulan rekaman di berbagai jendela anak antarmuka dokumen (MDI), dan sebagainya.

Anda mungkin ingin menerapkan pencetakan apa pun yang ada dalam tampilan Anda, apakah itu formulir yang diimplementasikan dengan CRecordView atau sesuatu yang lain. Karena kelas yang berasal dari CFormView, CRecordView tidak mendukung pencetakan, tetapi Anda dapat mengambil alih OnPrint fungsi anggota untuk memungkinkan pencetakan. Untuk informasi selengkapnya, lihat kelas CFormView.

Anda mungkin tidak ingin menggunakan dokumen dan tampilan sama sekali. Dalam hal ini, lihat MFC: Menggunakan Kelas Database Tanpa Dokumen dan Tampilan.

Baca juga

Kelas Database MFC