Aracılığıyla paylaş


CDaoException Sınıfı

Veri erişim nesnelerini (DAO) temel alan MFC veritabanı sınıflarından kaynaklanan bir özel durum koşulunu temsil eder.

Not

Veri Erişim Nesnesi (DAO), Office 2013 aracılığıyla desteklenir. DAO 3.6 son sürümdür ve kullanımdan kaldırılmış durumdadır.

Sözdizimi

class CDaoException : public CException

Üyeler

Ortak Oluşturucular

Veri Akışı Adı Açıklama
CDaoException::CDaoException Bir CDaoException nesne oluşturur.

Genel Yöntemler

Veri Akışı Adı Açıklama
CDaoException::GetErrorCount Veritabanı altyapısının Errors koleksiyonundaki hata sayısını döndürür.
CDaoException::GetErrorInfo Errors koleksiyonundaki belirli bir hata nesnesiyle ilgili hata bilgilerini döndürür.

Ortak Veri Üyeleri

Veri Akışı Adı Açıklama
CDaoException::m_nAfxDaoError MFC DAO sınıflarındaki herhangi bir hata için genişletilmiş bir hata kodu içerir.
CDaoException::m_pErrorInfo Bir DAO hata nesnesi hakkında bilgi içeren bir CDaoErrorInfo nesnesi işaretçisi.
CDaoException::m_scode Hatayla ilişkili SCODE değeri.

Açıklamalar

sınıfı, özel durumun nedenini belirlemek için kullanabileceğiniz genel veri üyelerini içerir. CDaoException nesneleri DAO veritabanı sınıflarının üye işlevleri tarafından oluşturulur ve oluşturulur.

Not

DAO veritabanı sınıfları, Açık Veritabanı Bağlantısı (ODBC) temelinde MFC veritabanı sınıflarından farklıdır. Tüm DAO veritabanı sınıf adları "CDao" ön ekini alır. DAO sınıflarıyla ODBC veri kaynaklarına erişmeye devam edebilirsiniz. Genel olarak, DAO tabanlı MFC sınıfları ODBC tabanlı MFC sınıflarından daha yeteneklidir; DAO tabanlı sınıflar, ODBC sürücüleri de dahil olmak üzere verilere kendi veritabanı altyapısı üzerinden erişebilir. DAO tabanlı sınıflar, DAO'yu doğrudan çağırmak zorunda kalmadan sınıflar aracılığıyla tablo ekleme gibi Veri Tanım Dili (DDL) işlemlerini de destekler. ODBC sınıfları tarafından oluşan özel durumlar hakkında bilgi için bkz . CDBException.

CATCH ifadesi kapsamındaki özel durum nesnelerine erişebilirsiniz. AfxThrowDaoException genel işleviyle kendi kodunuzdan nesneler de oluşturabilirsinizCDaoException.

MFC'de, tüm DAO hataları türünde CDaoExceptionözel durumlar olarak ifade edilir. Bu tür bir özel durum yakaladığınızda, veritabanı altyapısının Errors koleksiyonunda depolanan tüm DAO hata nesnelerinden bilgi almak için üye işlevlerini kullanabilirsiniz CDaoException . Her hata oluştuğunda, hatalar koleksiyonuna bir veya daha fazla hata nesnesi yerleştirilir. (Normalde koleksiyon yalnızca bir hata nesnesi içerir; ODBC veri kaynağı kullanıyorsanız birden çok hata nesnesi alma olasılığınız daha yüksektir.) Başka bir DAO işlemi hata oluşturduğunda Errors koleksiyonu temizlenir ve yeni hata nesnesi Errors koleksiyonuna yerleştirilir. Hata oluşturmayan DAO işlemlerinin Errors koleksiyonu üzerinde hiçbir etkisi yoktur.

DAO hata kodları için DAOERR.H dosyasına bakın. İlgili bilgiler için DAO Yardımı'ndaki "Yakalanabilir Veri Erişimi Hataları" konusuna bakın.

Genel olarak özel durum işleme veya nesneler hakkında CDaoException daha fazla bilgi için Özel Durum İşleme (MFC) ve Özel Durumlar: Veritabanı Özel Durumları makalelerine bakın. İkinci makale, DAO'da özel durum işlemeyi gösteren örnek kod içerir.

Devralma Hiyerarşisi

CObject

CException

CDaoException

Gereksinimler

Üstbilgi: afxdao.h

CDaoException::CDaoException

Bir CDaoException nesne oluşturur.

CDaoException();

Açıklamalar

Normalde, kodu bir özel durum oluşturduğunda çerçeve özel durum nesneleri oluşturur. Nadiren açıkça bir özel durum nesnesi oluşturmanız gerekir. Kendi kodunuzdan bir CDaoException oluşturmak istiyorsanız AfxThrowDaoException genel işlevini çağırın.

Ancak, MFC sınıflarının kapsüllediğiniz DAO arabirim işaretçileri aracılığıyla DAO'ya doğrudan çağrılar yapıyorsanız açıkça bir özel durum nesnesi oluşturmak isteyebilirsiniz. Bu durumda, DAO'dan hata bilgilerini almanız gerekebilir. Bir çalışma alanının Databases koleksiyonuna DAODatabases arabirimi aracılığıyla bir DAO yöntemi çağırdığınızda DAO'da bir hata oluştuğu nu varsayalım.

DAO hata bilgilerini almak için
  1. Nesne oluşturma CDaoException .

  2. Veritabanı altyapısının Errors koleksiyonunda kaç hata nesnesi olduğunu belirlemek için özel durum nesnesinin GetErrorCount üye işlevini çağırın. (ODBC veri kaynağı kullanmıyorsanız normalde yalnızca bir tane.)

  3. Özel durum nesnesinin GetErrorInfo üye işlevini çağırarak özel durum nesnesi aracılığıyla koleksiyondaki dizine göre bir kerede belirli bir hata nesnesi alın. Özel durum nesnesini bir DAO hata nesnesi için ara sunucu olarak düşünün.

  4. m_pErrorInfo veri üyesinde döndüren GetErrorInfo geçerli CDaoErrorInfo yapısını inceleyin. Üyeleri DAO hatası hakkında bilgi sağlar.

  5. ODBC veri kaynağı söz konusu olduğunda, daha fazla hata nesnesi için 3. ve 4. adımları gerektiği gibi yineleyin.

  6. Yığında özel durum nesnesi oluşturduysanız, bitirdiğinizde işleciyle silin delete .

MFC DAO sınıflarındaki hataları işleme hakkında daha fazla bilgi için Özel Durumlar: Veritabanı Özel Durumları makalesine bakın.

CDaoException::GetErrorCount

Veritabanı altyapısının Errors koleksiyonundaki DAO hata nesnelerinin sayısını almak için bu üye işlevini çağırın.

short GetErrorCount();

Dönüş Değeri

Veritabanı altyapısının Errors koleksiyonundaki DAO hata nesnelerinin sayısı.

Açıklamalar

Bu bilgiler, koleksiyondaki bir veya daha fazla DAO hata nesnesinin her birini almak için Errors koleksiyonunda döngü yapmak için kullanışlıdır. Dizine veya DAO hata numarasına göre bir hata nesnesi almak için GetErrorInfo üye işlevini çağırın.

Not

Normalde Errors koleksiyonunda yalnızca bir hata nesnesi vardır. Ancak bir ODBC veri kaynağıyla çalışıyorsanız birden fazla olabilir.

CDaoException::GetErrorInfo

Errors koleksiyonundaki belirli bir hata nesnesiyle ilgili hata bilgilerini döndürür.

void GetErrorInfo(int nIndex);

Parametreler

nIndex
Dizine göre arama için veritabanı altyapısının Errors koleksiyonundaki hata bilgilerinin dizini.

Açıklamalar

Özel durum hakkında aşağıdaki tür bilgileri almak için bu üye işlevini çağırın:

  • Hata kodu

  • Source

  • Açıklama

  • Yardım dosyası

  • Yardım bağlamı

GetErrorInfo bilgileri özel durum nesnesinin m_pErrorInfo veri üyesinde depolar. Döndürülen bilgilerin kısa bir açıklaması için bkz . m_pErrorInfo. MFC tarafından oluşturulmuş bir tür CDaoException özel durumu yakalarsanız, m_pErrorInfo üye zaten doldurulur. DAO'yu doğrudan çağırmayı seçerseniz, doldurmak m_pErrorInfoiçin özel durum nesnesinin GetErrorInfo üye işlevini kendiniz çağırmanız gerekir. Daha ayrıntılı bir açıklama için bkz . CDaoErrorInfo yapısı.

DAO özel durumları ve örnek kod hakkında bilgi için Özel Durumlar: Veritabanı Özel Durumları makalesine bakın.

CDaoException::m_nAfxDaoError

MFC genişletilmiş hata kodunu içerir.

Açıklamalar

Bu kod, MFC DAO sınıflarının belirli bir bileşeninin hatalı olduğu durumlarda sağlanır.

Olası değerler şunlardır:

  • NO_AFX_DAO_ERROR En son işlem MFC genişletilmiş hatasına neden olmadı. Ancak, işlem DAO veya OLE'den başka hatalar da üretebilirdi, bu nedenle m_pErrorInfo ve muhtemelen m_scode denetlemeniz gerekir.

  • AFX_DAO_ERROR_ENGINE_INITIALIZATION MFC, Microsoft Jet veritabanı altyapısını başlatamadı. OLE başlatılamadı veya DAO veritabanı altyapısı nesnesinin bir örneğini oluşturmak mümkün olmayabilir. Bu sorunlar genellikle DAO veya OLE'nin hatalı yüklenmesini önerir.

  • AFX_DAO_ERROR_DFX_BIND DAO kayıt alanı değişimi (DFX) işlev çağrısında kullanılan bir adres yok veya geçersiz (adres verileri bağlamak için kullanılmadı). DFX çağrısında hatalı bir adres geçirmiş olabilirsiniz veya DFX işlemleri arasında adres geçersiz hale gelmiş olabilir.

  • AFX_DAO_ERROR_OBJECT_NOT_OPEN Açık durumda olmayan bir sorgu tanımına veya tabledef nesnesine dayalı bir kayıt kümesini açmayı denediniz.

CDaoException::m_pErrorInfo

GetErrorInfo çağırarak en son aldığınız DAO hata nesnesi hakkında bilgi sağlayan bir CDaoErrorInfo yapı işaretçisi içerir.

Açıklamalar

Bu nesne aşağıdaki bilgileri içerir:

CDaoErrorInfo üyesi Bilgiler Anlamı
m_lErrorCode Hata Kodu DAO hata kodu
m_strSource Kaynak Hatayı ilk oluşturan nesnenin veya uygulamanın adı
m_strDescription Açıklama Hatayla ilişkili açıklayıcı bir dize
m_strHelpFile Yardım Dosyası Kullanıcının sorunla ilgili bilgi alabildiği bir Windows Yardım dosyasının yolu
m_lHelpContext Yardım Bağlamı DAO Yardım dosyasındaki bir konunun bağlam kimliği

nesnesinde CDaoErrorInfo yer alan bilgiler hakkında tüm ayrıntılar için bkz . CDaoErrorInfo yapısı.

CDaoException::m_scode

Hatayı açıklayan türde SCODE bir değer içerir.

Açıklamalar

Bu bir OLE kodudur. Neredeyse tüm durumlarda diğer CDaoException veri üyelerinde daha belirli MFC veya DAO hata bilgileri olduğundan, bu değeri nadiren kullanmanız gerekir.

SCODE hakkında bilgi için Windows SDK'sında OLE Hata Kodlarının Yapısı konusuna bakın. SCODE veri türü HRESULT veri türüyle eşlenir.

Ayrıca bkz.

CException Sınıfı
Hiyerarşi Grafiği