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:
Cara menulis aplikasi berbasis formulir menggunakan
CRecordView
objek sebagai tampilan utama pada dokumen Anda.Cara menggunakan objek recordset di dokumen dan tampilan Anda.
Pertimbangan lain.
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 keCDatabase
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 membuatCDatabase
objek dan membukanya. Panduan diterapkanGetDefaultConnect
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 keCDatabase
objek di dalamnya.Objek
CDatabase
mengelola koneksi ke sumber data Anda. Objek dibangun secara otomatis selama konstruksi dokumen, dan Anda memanggil fungsi anggotanyaOpen
saat Anda menginisialisasi dokumen. Saat Anda membuat objek kumpulan rekaman dalam fungsi anggota dokumen, Anda meneruskan penunjuk ke objek dokumenCDatabase
. 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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk