Bagikan melalui


Kelas CDaoException

Mewakili kondisi pengecualian yang timbul dari kelas database MFC berdasarkan objek akses data (DAO). DAO 3.6 adalah versi akhir, dan dianggap usang.

Sintaks

class CDaoException : public CException

Anggota

Konstruktor Publik

Nama Deskripsi
CDaoException::CDaoException Membuat CDaoException objek.

Metode Publik

Nama Deskripsi
CDaoException::GetErrorCount Mengembalikan jumlah kesalahan dalam kumpulan Kesalahan mesin database.
CDaoException::GetErrorInfo Mengembalikan informasi kesalahan tentang objek kesalahan tertentu dalam kumpulan Kesalahan.

Anggota Data Publik

Nama Deskripsi
CDaoException::m_nAfxDaoError Berisi kode kesalahan yang diperluas untuk kesalahan apa pun di kelas MFC DAO.
CDaoException::m_pErrorInfo Penunjuk ke objek CDaoErrorInfo yang berisi informasi tentang satu objek kesalahan DAO.
CDaoException::m_scode Nilai SCODE yang terkait dengan kesalahan.

Keterangan

Kelas ini mencakup anggota data publik yang dapat Anda gunakan untuk menentukan penyebab pengecualian. CDaoException objek dibangun dan dilemparkan oleh fungsi anggota dari kelas database DAO.

Catatan

Kelas database DAO berbeda dari kelas database MFC berdasarkan Open Database Koneksi ivity (ODBC). Semua nama kelas database DAO memiliki awalan "CDao". Anda masih dapat mengakses sumber data ODBC dengan kelas DAO. Secara umum, kelas MFC berdasarkan DAO lebih mampu daripada kelas MFC berdasarkan ODBC; kelas berbasis DAO dapat mengakses data, termasuk melalui driver ODBC, melalui mesin database mereka sendiri. Kelas berbasis DAO juga mendukung operasi Data Definition Language (DDL), seperti menambahkan tabel melalui kelas, tanpa harus memanggil DAO secara langsung. Untuk informasi tentang pengecualian yang dilemparkan oleh kelas ODBC, lihat CDBException.

Anda dapat mengakses objek pengecualian dalam cakupan ekspresi CATCH . Anda juga dapat melempar CDaoException objek dari kode Anda sendiri dengan fungsi global AfxThrowDaoException .

Di MFC, semua kesalahan DAO dinyatakan sebagai pengecualian, dari jenis CDaoException. Saat Anda menangkap pengecualian dari jenis ini, Anda dapat menggunakan CDaoException fungsi anggota untuk mengambil informasi dari objek kesalahan DAO apa pun yang disimpan dalam koleksi Kesalahan mesin database. Saat setiap kesalahan terjadi, satu atau beberapa objek kesalahan ditempatkan dalam kumpulan Kesalahan. (Biasanya koleksi hanya berisi satu objek kesalahan; jika Anda menggunakan sumber data ODBC, Anda lebih mungkin mendapatkan beberapa objek kesalahan.) Ketika operasi DAO lain menghasilkan kesalahan, koleksi Kesalahan dibersihkan, dan objek kesalahan baru ditempatkan dalam koleksi Kesalahan. Operasi DAO yang tidak menghasilkan kesalahan tidak berpengaruh pada kumpulan Kesalahan.

Untuk kode kesalahan DAO, lihat file DAOERR.H. Untuk informasi terkait, lihat topik "Kesalahan Akses Data yang Dapat Dijebak" di Bantuan DAO.

Untuk informasi selengkapnya tentang penanganan pengecualian secara umum, atau tentang CDaoException objek, lihat artikel Penanganan Pengecualian (MFC) dan Pengecualian: Pengecualian Database. Artikel kedua berisi contoh kode yang menggambarkan penanganan pengecualian di DAO.

Hierarki Warisan

CObject

CException

CDaoException

Persyaratan

Header: afxdao.h

CDaoException::CDaoException

Membuat CDaoException objek.

CDaoException();

Keterangan

Biasanya, kerangka kerja membuat objek pengecualian ketika kodenya melemparkan pengecualian. Anda jarang perlu membuat objek pengecualian secara eksplisit. Jika Anda ingin melempar CDaoException dari kode Anda sendiri, panggil fungsi global AfxThrowDaoException.

Namun, Anda mungkin ingin secara eksplisit membuat objek pengecualian jika Anda melakukan panggilan langsung ke DAO melalui pointer antarmuka DAO yang dienkapsulasi kelas MFC. Dalam hal ini, Anda mungkin perlu mengambil informasi kesalahan dari DAO. Misalkan kesalahan terjadi di DAO saat Anda memanggil metode DAO melalui antarmuka DAODatabases ke koleksi Database ruang kerja.

Untuk mengambil informasi kesalahan DAO
  1. Membuat CDaoException objek.

  2. Panggil fungsi anggota GetErrorCount objek pengecualian untuk menentukan berapa banyak objek kesalahan dalam koleksi Kesalahan mesin database. (Biasanya hanya satu, kecuali Anda menggunakan sumber data ODBC.)

  3. Panggil fungsi anggota GetErrorInfo objek pengecualian untuk mengambil satu objek kesalahan tertentu pada satu waktu, dengan indeks dalam koleksi, melalui objek pengecualian. Anggap objek pengecualian sebagai proksi untuk satu objek kesalahan DAO.

  4. Periksa struktur CDaoErrorInfo saat ini yang GetErrorInfo ditampilkan di anggota data m_pErrorInfo. Anggotanya memberikan informasi tentang kesalahan DAO.

  5. Dalam kasus sumber data ODBC, ulangi langkah 3 dan 4 sesuai kebutuhan, untuk objek kesalahan lainnya.

  6. Jika Anda membuat objek pengecualian pada tumpukan, hapus dengan delete operator setelah selesai.

Untuk informasi selengkapnya tentang menangani kesalahan di kelas MFC DAO, lihat artikel Pengecualian: Pengecualian Database.

CDaoException::GetErrorCount

Panggil fungsi anggota ini untuk mengambil jumlah objek kesalahan DAO dalam kumpulan Kesalahan mesin database.

short GetErrorCount();

Tampilkan Nilai

Jumlah objek kesalahan DAO dalam kumpulan Kesalahan mesin database.

Keterangan

Informasi ini berguna untuk mengulangi koleksi Kesalahan untuk mengambil masing-masing dari satu atau beberapa objek kesalahan DAO dalam koleksi. Untuk mengambil objek kesalahan menurut indeks atau dengan nomor kesalahan DAO, panggil fungsi anggota GetErrorInfo .

Catatan

Biasanya hanya ada satu objek kesalahan dalam kumpulan Kesalahan. Namun, jika Anda bekerja dengan sumber data ODBC, mungkin ada lebih dari satu.

CDaoException::GetErrorInfo

Mengembalikan informasi kesalahan tentang objek kesalahan tertentu dalam kumpulan Kesalahan.

void GetErrorInfo(int nIndex);

Parameter

nIndex
Indeks informasi kesalahan dalam kumpulan Kesalahan mesin database, untuk pencarian menurut indeks.

Keterangan

Panggil fungsi anggota ini untuk mendapatkan jenis informasi berikut tentang pengecualian:

  • Kode kesalahan

  • Sumber

  • Deskripsi

  • File bantuan

  • Konteks bantuan

GetErrorInfo menyimpan informasi dalam anggota data objek m_pErrorInfo pengecualian. Untuk deskripsi singkat tentang informasi yang dikembalikan, lihat m_pErrorInfo. Jika Anda menangkap pengecualian jenis CDaoException yang dilemparkan oleh MFC, m_pErrorInfo anggota sudah akan diisi. Jika Anda memilih untuk memanggil DAO secara langsung, Anda harus memanggil fungsi anggota objek GetErrorInfo pengecualian sendiri untuk mengisi m_pErrorInfo. Untuk deskripsi yang lebih rinci, lihat struktur CDaoErrorInfo .

Untuk informasi tentang pengecualian DAO, dan contoh kode, lihat artikel Pengecualian: Pengecualian Database.

CDaoException::m_nAfxDaoError

Berisi kode kesalahan yang diperluas MFC.

Keterangan

Kode ini disediakan dalam kasus di mana komponen tertentu dari kelas MFC DAO telah hilang.

Kemungkinan nilai adalah:

  • NO_AFX_DAO_ERROR Operasi terbaru tidak mengakibatkan kesalahan perluasan MFC. Namun, operasi ini dapat menghasilkan kesalahan lain dari DAO atau OLE, jadi Anda harus memeriksa m_pErrorInfo dan mungkin m_scode.

  • AFX_DAO_ERROR_ENGINE_INITIALIZATION MFC tidak dapat menginisialisasi mesin database Microsoft Jet. OLE mungkin gagal diinisialisasi, atau mungkin tidak mungkin untuk membuat instans objek mesin database DAO. Masalah ini biasanya menyarankan penginstalan yang buruk dari DAO atau OLE.

  • AFX_DAO_ERROR_DFX_BIND Alamat yang digunakan dalam panggilan fungsi pertukaran bidang rekaman DAO (DFX) tidak ada atau tidak valid (alamat tidak digunakan untuk mengikat data). Anda mungkin telah melewati alamat buruk dalam panggilan DFX, atau alamat mungkin menjadi tidak valid antara operasi DFX.

  • AFX_DAO_ERROR_OBJECT_NOT_OPEN Anda mencoba membuka kumpulan rekaman berdasarkan querydef atau objek tabledef yang tidak dalam status terbuka.

CDaoException::m_pErrorInfo

Berisi penunjuk ke CDaoErrorInfo struktur yang menyediakan informasi tentang objek kesalahan DAO yang terakhir Anda ambil dengan memanggil GetErrorInfo.

Keterangan

Objek ini berisi informasi berikut:

Anggota CDaoErrorInfo Informasi Makna
m_lErrorCode Kode Galat Kode kesalahan DAO
m_strSource Sumber Nama objek atau aplikasi yang awalnya menghasilkan kesalahan
m_strDescription Deskripsi String deskriptif yang terkait dengan kesalahan
m_strHelpFile File Bantuan Jalur ke file Bantuan Windows tempat pengguna bisa mendapatkan informasi tentang masalah tersebut
m_lHelpContext Konteks Bantuan ID konteks untuk topik dalam file Bantuan DAO

Untuk detail selengkapnya tentang informasi yang terkandung dalam CDaoErrorInfo objek, lihat struktur CDaoErrorInfo .

CDaoException::m_scode

Berisi nilai jenis SCODE yang menjelaskan kesalahan.

Keterangan

Ini adalah kode OLE. Anda jarang perlu menggunakan nilai ini karena, dalam hampir semua kasus, informasi kesalahan MFC atau DAO yang lebih spesifik tersedia di anggota data lainnya CDaoException .

Untuk informasi tentang SCODE, lihat topik Struktur Kode Kesalahan OLE di Windows SDK. Jenis data SCODE memetakan ke jenis data HRESULT.

Baca juga

Kelas CException
Bagan Hierarki
Kelas CException