Bagikan melalui


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 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 CRecordViewkelas 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 CDialogCFormViewuntuk dialog biasa.

Menulis Aplikasi Tanpa Dokumen

Karena wizard aplikasi tidak mendukung pembuatan aplikasi tanpa dokumen, Anda harus menulis kelas turunan Anda sendiri CWinAppdan, 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 sementara CDatabase menggunakan informasi dalam fungsi anggota kumpulan rekaman GetDefaultConnect . 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 Anda CWinApp::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

Kelas Database MFC