MFC: Menggunakan Kelas Database Tanpa Dokumen dan Tampilan
Terkadang Anda mungkin tidak ingin menggunakan arsitektur dokumen/tampilan kerangka kerja di aplikasi database Anda. Topik ini menjelaskan:
Ketika Anda tidak perlu menggunakan dokumen seperti serialisasi dokumen.
Opsi wizard aplikasi untuk mendukung aplikasi tanpa serialisasi dan tanpa perintah menu File terkait dokumen seperti Baru, Buka, Simpan, dan Simpan Sebagai.
Cara bekerja dengan aplikasi yang menggunakan dokumen minimal.
Ketika Anda tidak memerlukan dokumen
Beberapa aplikasi memiliki konsep dokumen yang berbeda. Aplikasi ini biasanya memuat semua atau sebagian besar file dari penyimpanan ke dalam memori dengan perintah Buka File. Mereka menulis file yang diperbarui kembali ke penyimpanan sekaligus dengan perintah Simpan atau Simpan Sebagai File. Apa yang dilihat pengguna adalah file data.
Namun, beberapa kategori aplikasi tidak memerlukan dokumen. Aplikasi database beroperasi dalam hal transaksi. Aplikasi memilih rekaman dari database dan menyajikannya kepada pengguna, sering kali satu per satu. Apa yang dilihat pengguna biasanya adalah satu rekaman saat ini, yang mungkin satu-satunya dalam memori.
Jika aplikasi Anda tidak memerlukan dokumen untuk menyimpan data, Anda dapat mengeluarkan beberapa atau semua arsitektur dokumen/tampilan kerangka kerja. Berapa banyak Anda mengeluarkan tergantung pada pendekatan yang Anda sukai. Anda mungkin:
Gunakan dokumen minimal sebagai tempat untuk menyimpan koneksi ke sumber data Anda tetapi mengeluarkan dengan fitur dokumen normal seperti serialisasi. Ini berguna ketika Anda menginginkan beberapa tampilan data dan ingin menyinkronkan semua tampilan, memperbarui semuanya sekaligus dan sebagainya.
Gunakan jendela bingkai, tempat Anda menggambar secara langsung, bukan menggunakan tampilan. Dalam hal ini, Anda menghilangkan dokumen dan menyimpan data atau koneksi data apa pun di objek jendela bingkai.
Opsi Panduan Aplikasi untuk Dokumen dan Tampilan
Panduan Aplikasi MFC memiliki beberapa opsi di Pilih dukungan database, yang tercantum dalam tabel berikut. Jika Anda menggunakan Wizard Aplikasi MFC untuk membuat aplikasi, semua opsi ini menghasilkan aplikasi dengan dokumen dan tampilan. Beberapa opsi menyediakan dokumen dan tampilan yang menghilangkan fungsionalitas dokumen yang tidak diperlukan. Untuk informasi selengkapnya, lihat Dukungan Database, MFC Application Wizard.
Opsi | Tampilkan | Dokumen |
---|---|---|
Tidak ada | Berasal dari CView . |
Tidak menyediakan dukungan database. Ini adalah opsi default. Jika Anda memilih opsi dukungan arsitektur Dokumen/tampilan pada halaman Jenis Aplikasi, Wizard Aplikasi MFC, Anda mendapatkan dukungan dokumen lengkap termasuk serialisasi dan perintah Baru, Buka, Simpan, dan Simpan Sebagai pada menu File. Lihat Aplikasi tanpa Dokumen. |
File header saja | Berasal dari CView . |
Menyediakan tingkat dukungan database dasar untuk aplikasi Anda. Termasuk Afxdb.h. Menambahkan pustaka tautan, tetapi tidak membuat kelas khusus database apa pun. Anda dapat membuat kumpulan rekaman nanti dan menggunakannya untuk memeriksa dan memperbarui rekaman. |
Tampilan database tanpa dukungan file | Berasal dari CRecordView |
Menyediakan dukungan dokumen tetapi tidak ada dukungan serialisasi. Dokumen dapat menyimpan kumpulan rekaman dan mengoordinasikan beberapa tampilan; tidak mendukung serialisasi atau perintah Baru, Buka, Simpan, dan Simpan Sebagai . Lihat Aplikasi dengan Dokumen Minimal. Jika Anda menyertakan tampilan database, Anda harus menentukan sumber data. Menyertakan file header database, pustaka tautan, tampilan rekaman, dan kumpulan rekaman. (Hanya tersedia untuk aplikasi dengan Opsi dukungan arsitektur dokumen/tampilan dipilih pada halaman Jenis Aplikasi, Wizard Aplikasi MFC.) |
Tampilan database dengan dukungan file | Berasal dari CRecordView |
Menyediakan dukungan dokumen lengkap, termasuk serialisasi dan perintah menu File terkait dokumen. Aplikasi database biasanya beroperasi berdasarkan per rekaman daripada berdasarkan per file dan karenanya tidak memerlukan serialisasi. Namun, Anda mungkin memiliki penggunaan khusus untuk serialisasi. Lihat Aplikasi dengan Dokumen Minimal. Jika Anda menyertakan tampilan database, Anda harus menentukan sumber data. Menyertakan file header database, pustaka tautan, tampilan rekaman, dan kumpulan rekaman. (Hanya tersedia untuk aplikasi dengan Opsi dukungan arsitektur dokumen/tampilan dipilih pada halaman Jenis Aplikasi, Wizard Aplikasi MFC.) |
Untuk diskusi alternatif untuk serialisasi dan penggunaan alternatif untuk serialisasi, lihat Serialisasi: Serialisasi vs. Input/Output Database.
Aplikasi dengan Dokumen Minimal
MFC Application Wizard memiliki dua opsi yang mendukung aplikasi akses data berbasis formulir. Setiap opsi membuat CRecordView
kelas tampilan -turunan dan dokumen. Mereka berbeda dalam apa yang mereka tinggalkan dari dokumen.
Dokumen Tanpa Dukungan File
Pilih opsi database wizard aplikasi Tampilan database tanpa dukungan file jika Anda tidak memerlukan serialisasi dokumen. Dokumen ini melayani tujuan yang berguna berikut:
Ini adalah tempat yang nyaman untuk menyimpan
CRecordset
objek.Penggunaan ini paralel dengan konsep dokumen biasa: dokumen menyimpan data (atau, dalam hal ini, sekumpulan rekaman) dan tampilannya adalah tampilan dokumen.
Jika aplikasi Anda menyajikan beberapa tampilan (seperti beberapa tampilan rekaman), dokumen mendukung koordinasi tampilan.
Jika beberapa tampilan memperlihatkan data yang sama, Anda dapat menggunakan
CDocument::UpdateAllViews
fungsi anggota untuk mengoordinasikan pembaruan ke semua tampilan saat tampilan apa pun mengubah data.
Anda biasanya menggunakan opsi ini untuk aplikasi berbasis formulir sederhana. Wizard aplikasi mendukung struktur yang nyaman untuk aplikasi tersebut secara otomatis.
Dokumen dengan Dukungan File
Pilih opsi database wizard aplikasi Tampilan database dengan dukungan file saat Anda memiliki penggunaan alternatif untuk perintah menu File terkait dokumen dan serialisasi dokumen. Untuk bagian akses data program Anda, Anda bisa menggunakan dokumen dengan cara yang sama seperti yang dijelaskan dalam Dokumen Tanpa Dukungan File. Anda dapat menggunakan kemampuan serialisasi dokumen, misalnya, untuk membaca dan menulis dokumen profil pengguna berseri yang menyimpan preferensi pengguna atau informasi berguna lainnya. Untuk ide lainnya, lihat Serialisasi: Serialisasi vs. Input/Output Database.
Wizard aplikasi mendukung opsi ini, tetapi Anda harus menulis kode yang menserialisasikan dokumen. Simpan informasi berseri dalam anggota data dokumen.
Aplikasi tanpa Dokumen
Terkadang Anda mungkin ingin menulis aplikasi yang tidak menggunakan dokumen atau tampilan. Tanpa dokumen, Anda menyimpan data (seperti CRecordset
objek) di kelas jendela bingkai atau kelas aplikasi Anda. Persyaratan tambahan apa pun bergantung pada apakah aplikasi menyajikan antarmuka pengguna.
Dukungan Database dengan Antarmuka Pengguna
Jika Anda memiliki antarmuka pengguna (selain, misalnya, antarmuka baris perintah konsol), aplikasi Anda menarik langsung ke area klien jendela bingkai daripada ke tampilan. Aplikasi seperti itu tidak menggunakan CRecordView
, , atau CDialog
untuk antarmuka pengguna utamanya, tetapi biasanya digunakan CDialog
CFormView
untuk dialog biasa.
Menulis Aplikasi Tanpa Dokumen
Karena wizard aplikasi tidak mendukung pembuatan aplikasi tanpa dokumen, Anda harus menulis kelas turunan Anda sendiri CWinApp
dan, jika diperlukan, juga membuat CFrameWnd
kelas atau CMDIFrameWnd
. Ambil alih CWinApp::InitInstance
dan deklarasikan objek aplikasi sebagai:
CYourNameApp theApp;
Kerangka kerja ini masih memasok mekanisme peta pesan dan banyak fitur lainnya.
Dukungan Database Terpisah dari Antarmuka Pengguna
Beberapa aplikasi tidak memerlukan antarmuka pengguna atau hanya minimal. Misalnya, Anda menulis:
Objek akses data perantara yang dipanggil aplikasi lain (klien) untuk pemrosesan data khusus antara aplikasi dan sumber data.
Aplikasi yang memproses data tanpa intervensi pengguna, seperti aplikasi yang memindahkan data dari satu format database ke format database lainnya atau yang melakukan penghitungan dan melakukan pembaruan batch.
Karena tidak ada dokumen yang CRecordset
memiliki objek, Anda mungkin ingin menyimpannya sebagai anggota data yang disematkan di kelas aplikasi turunan Anda CWinApp
. Alternatifnya meliputi:
Tidak menyimpan objek permanen
CRecordset
sama sekali. Anda dapat meneruskan NULL ke konstruktor kelas recordset Anda. Dalam hal ini, kerangka kerja membuat objek sementaraCDatabase
menggunakan informasi dalam fungsi anggota kumpulan rekamanGetDefaultConnect
. Ini adalah pendekatan alternatif yang paling mungkin.CRecordset
Menjadikan objek sebagai variabel global. Variabel ini harus menjadi penunjuk ke objek recordset yang Anda buat secara dinamis dalam penimpaan AndaCWinApp::InitInstance
. Ini menghindari upaya untuk membuat objek sebelum kerangka kerja diinisialisasi.Menggunakan objek recordset seperti yang Anda lakukan dalam konteks dokumen atau tampilan. Buat kumpulan rekaman di fungsi anggota aplikasi atau objek jendela bingkai Anda.
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