Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Megjegyzés:
A Microsoft Foundation Classes (MFC) könyvtár továbbra is támogatott. A továbbiakban azonban nem adunk hozzá funkciókat, és nem frissítjük a dokumentációt.
Az adatelérési objektumokon (DAO) alapuló MFC-adatbázisosztályokból eredő kivételfeltételeket jelöli.
Megjegyzés:
Az Adatelérési objektum (DAO) az Office 2013-on keresztül támogatott. A DAO 3.6 a végleges verzió, és elavult.
Szemantika
class CDaoException : public CException
Tagok
Nyilvános konstruktorok
| Név | Description |
|---|---|
| CDaoException::CDaoException | Egy CDaoException objektumot hoz létre. |
Nyilvános metódusok
| Név | Description |
|---|---|
| CDaoException::GetErrorCount | Az adatbázismotor hibagyűjteményében található hibák számát adja vissza. |
| CDaoException::GetErrorInfo | Hibainformációkat ad vissza egy adott hibaobjektumról a Hibagyűjteményben. |
Nyilvános adatok tagjai
| Név | Description |
|---|---|
| CDaoException::m_nAfxDaoError | Kiterjesztett hibakódot tartalmaz az MFC DAO-osztályok hibáihoz. |
| CDaoException::m_pErrorInfo | Egy CDaoErrorInfo objektumra mutató mutató, amely egy DAO-hibaobjektum adatait tartalmazza. |
| CDaoException::m_scode | A hibához társított SCODE-érték . |
Megjegyzések
Az osztály tartalmazza a kivétel okának meghatározásához használható nyilvánosadat-tagokat.
CDaoException objektumokat a DAO-adatbázisosztályok tagfüggvényei építenek ki és dobnak ki.
Megjegyzés:
A DAO-adatbázisosztályok különböznek az MFC-adatbázisosztályoktól az Open Database Connectivity (ODBC) alapján. Minden DAO-adatbázisosztály neve rendelkezik a "CDao" előtaggal. A DAO-osztályokkal továbbra is elérheti az ODBC-adatforrásokat. Általánosságban elmondható, hogy a DAO-n alapuló MFC-osztályok jobban képesek, mint az ODBC-n alapuló MFC-osztályok; a DAO-alapú osztályok saját adatbázismotorjukon keresztül férhetnek hozzá az adatokhoz, beleértve az ODBC-illesztőprogramokat is. A DAO-alapú osztályok az adatdefiníciós nyelvi (DDL) műveleteket is támogatják, például táblákat adhatnak hozzá az osztályokon keresztül anélkül, hogy közvetlenül kellene meghívniuk a DAO-t. Az ODBC-osztályok által kidobott kivételekről további információt a CDBException című témakörben talál.
A kivételobjektumokat a CATCH kifejezés hatókörén belül érheti el. Az AfxThrowDaoException globális függvénnyel saját kódból is kidobhat CDaoException objektumokat.
Az MFC-ben az összes DAO-hiba kivételként, típusként CDaoExceptionvan kifejezve. Ha ilyen típusú kivételt észlel, a tagfüggvények használatával CDaoException adatokat kérdezhet le az adatbázismotor Hibagyűjteményében tárolt DAO-hibaobjektumokból. Minden hiba bekövetkezésekor egy vagy több hibaobjektum kerül a Hibagyűjteménybe. (A gyűjtemény általában csak egy hibaobjektumot tartalmaz, ha ODBC-adatforrást használ, akkor nagyobb valószínűséggel kap több hibaobjektumot.) Ha egy másik DAO-művelet hibát okoz, a hibagyűjtemény törlődik, és az új hibaobjektum a Hibagyűjteménybe kerül. Azok a DAO-műveletek, amelyek nem hoznak létre hibát, nincs hatással a hibagyűjteményre.
A DAO hibakódjaiért lásd a DAOERR.H fájlt. A kapcsolódó információkért tekintse meg a DAO súgójának "Trappable Data Access Errors" (Trappable Data Access Errors) című témakörét.
A kivételkezelésről általában vagy az objektumokról CDaoException további információt a Kivételkezelés (MFC) és a Kivételek: Adatbáziskivételek című cikkben talál. A második cikk példakódot tartalmaz, amely a DAO kivételkezelését szemlélteti.
Öröklési hierarchia
CDaoException
Requirements
Fejléc:afxdao.h
CDaoException::CDaoException
Egy CDaoException objektumot hoz létre.
CDaoException();
Megjegyzések
A keretrendszer általában kivételobjektumokat hoz létre, amikor a kód kivételt okoz. Ritkán kell explicit módon létrehoznia egy kivételobjektumot. Ha saját kódból szeretne dobni, CDaoException hívja meg az AfxThrowDaoException globális függvényt.
Előfordulhat azonban, hogy kifejezetten létre szeretne hozni egy kivételobjektumot, ha közvetlen hívásokat indít a DAO-nak az MFC-osztályok által beágyazott DAO-felületmutatókon keresztül. Ebben az esetben előfordulhat, hogy hibainformációkat kell lekérnie a DAO-tól. Tegyük fel, hogy hiba történik a DAO-ban, amikor DAO-metódust hív meg a DAODatabases felületén keresztül egy munkaterület Adatbázis-gyűjteményéhez.
A DAO hibainformációinak lekérése
CDaoExceptionObjektum létrehozása.Hívja meg a kivételobjektum GetErrorCount tagfüggvényét annak meghatározásához, hogy hány hibaobjektum található az adatbázismotor Hibagyűjteményében. (Általában csak egy, kivéve, ha ODBC-adatforrást használ.)
A kivételobjektum GetErrorInfo tagfüggvényének meghívásával egyszerre egy adott hibaobjektumot kérhet le a gyűjtemény indexe alapján a kivételobjektumon keresztül. A kivételobjektumot egy DAO-hibaobjektum proxyjaként tekinti.
Vizsgálja meg az aktuális CDaoErrorInfo struktúrát, amely
GetErrorInfoa m_pErrorInfo adattagban tér vissza. A tagok információt nyújtanak a DAO-hibáról.ODBC-adatforrás esetén szükség szerint ismételje meg a 3. és a 4. lépést további hibaobjektumok esetén.
Ha a halomra építette a kivételobjektumot, a befejezéskor törölje azt az
deleteoperátorral.
Az MFC DAO-osztályok hibáinak kezeléséről további információt a Kivételek: Adatbázis-kivételek című cikkben talál.
CDaoException::GetErrorCount
Hívja meg ezt a tagfüggvényt az adatbázismotor hibagyűjteményében található DAO-hibaobjektumok számának lekéréséhez.
short GetErrorCount();
Visszaadott érték
Az adatbázismotor hibagyűjteményében található DAO-hibaobjektumok száma.
Megjegyzések
Ez az információ hasznos lehet a Hibák gyűjteményen keresztüli ismétléshez a gyűjtemény egy vagy több DAO-hibaobjektumának lekéréséhez. Ha hibaobjektumot szeretne lekérni index vagy DAO hibaszám alapján, hívja meg a GetErrorInfo tagfüggvényt.
Megjegyzés:
A Hibák gyűjteményben általában csak egy hibaobjektum található. Ha azonban ODBC-adatforrással dolgozik, több is lehet.
CDaoException::GetErrorInfo
Hibainformációkat ad vissza egy adott hibaobjektumról a Hibagyűjteményben.
void GetErrorInfo(int nIndex);
Paraméterek
nIndex
Az adatbázismotor Hibagyűjteményében található hibainformációk indexe az index szerinti kereséshez.
Megjegyzések
Hívja meg ezt a tagfüggvényt a kivétellel kapcsolatos alábbi típusú információk beszerzéséhez:
Hibakód
Forrás
Description
Súgófájl
Súgókörnyezet
GetErrorInfo az adatokat a kivételobjektum adattagjában m_pErrorInfo tárolja. A visszaadott információk rövid leírását a m_pErrorInfo. Ha az MFC által kiírt típuskivételt CDaoException észleli, a m_pErrorInfo tag már ki lesz töltve. Ha úgy dönt, hogy közvetlenül hívja meg a DAO-t, a kitöltéshez a kivételobjektum tagfüggvényét GetErrorInfo kell meghívnia m_pErrorInfo. Részletesebb leírásért tekintse meg a CDaoErrorInfo struktúráját.
További információ a DAO-kivételekről és a példakódról : Kivételek: Adatbázis-kivételek.
CDaoException::m_nAfxDaoError
Kiterjesztett MFC hibakódot tartalmaz.
Megjegyzések
Ez a kód olyan esetekben van megadva, amikor az MFC DAO-osztályok egy adott összetevője tévedett.
A lehetséges értékek a következők:
NO_AFX_DAO_ERROR A legutóbbi művelet nem eredményezett kiterjesztett MFC-hibát. A művelet azonban más hibákat is okozhatott volna a DAO-tól vagy az OLE-tól, ezért ellenőriznie kell m_pErrorInfo és esetleg m_scode.
AFX_DAO_ERROR_ENGINE_INITIALIZATION MFC nem tudta inicializálni a Microsoft Jet adatbázismotort. Előfordulhat, hogy az OLE inicializálása sikertelen volt, vagy lehetetlen volt létrehozni a DAO-adatbázismotor-objektum egy példányát. Ezek a problémák általában a DAO vagy az OLE hibás telepítésére utalnak.
AFX_DAO_ERROR_DFX_BIND A DAO rekordmezőcsere (DFX) függvényhívásban használt cím nem létezik vagy érvénytelen (a címet nem az adatok kötésére használták). Lehet, hogy rossz címet adott át egy DFX-hívásban, vagy a cím érvénytelenné vált a DFX-műveletek között.
AFX_DAO_ERROR_OBJECT_NOT_OPEN Olyan rekordhalmazt kísérelt meg megnyitni, amely nem nyitott állapotú lekérdezési vagy tabledef-objektum alapján történt.
CDaoException::m_pErrorInfo
Egy olyan struktúrára mutató CDaoErrorInfo mutatót tartalmaz, amely a GetErrorInfo meghívásával a legutóbb lekért DAO-hibaobjektum adatait tartalmazza.
Megjegyzések
Ez az objektum a következő információkat tartalmazza:
| CDaoErrorInfo tag | Információ | Meaning |
|---|---|---|
m_lErrorCode |
Hibakód | A DAO hibakódja |
m_strSource |
Forrás | A hibát eredetileg létrehozó objektum vagy alkalmazás neve |
m_strDescription |
Description | A hibához társított leíró sztring |
m_strHelpFile |
Súgófájl | Egy Windows súgófájl elérési útja, amelyben a felhasználó információkat kaphat a problémáról |
m_lHelpContext |
Súgókörnyezet | Egy témakör környezetazonosítója a DAO súgófájljában |
Az objektumban található információk részletes leírását a CDaoErrorInfo struktúrájában CDaoErrorInfo találja.
CDaoException::m_scode
A hibát leíró típusértéket SCODE tartalmaz.
Megjegyzések
Ez egy OLE-kód. Ezt az értéket ritkán kell használnia, mert szinte minden esetben pontosabb MFC- vagy DAO-hibainformációk érhetők el a többi CDaoException adattagban.
Az SCODE-ról további információt a Windows SDK OLE hibakódjainak struktúrája című témakörben talál. A SCODE adattípus a HRESULT adattípusra van leképítve.