Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Opmerking
De Microsoft Foundation Classes-bibliotheek (MFC) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.
Vertegenwoordigt een uitzonderingsvoorwaarde die voortvloeit uit de MFC-databaseklassen op basis van DATA Access Objects (DAO).
Opmerking
Data Access Object (DAO) wordt ondersteund via Office 2013. DAO 3.6 is de definitieve versie en is verouderd.
Syntaxis
class CDaoException : public CException
Leden
Openbare constructors
| Naam | Description |
|---|---|
| CDaoException::CDaoException | Maakt een CDaoException object. |
Openbare methoden
| Naam | Description |
|---|---|
| CDaoException::GetErrorCount | Retourneert het aantal fouten in de verzameling Fouten van de database-engine. |
| CDaoException::GetErrorInfo | Retourneert foutinformatie over een bepaald foutobject in de verzameling Fouten. |
Leden van openbare gegevens
| Naam | Description |
|---|---|
| CDaoException::m_nAfxDaoError | Bevat een uitgebreide foutcode voor elke fout in de MFC DAO-klassen. |
| CDaoException::m_pErrorInfo | Een aanwijzer naar een CDaoErrorInfo-object dat informatie bevat over één DAO-foutobject. |
| CDaoException::m_scode | De SCODE-waarde die aan de fout is gekoppeld. |
Opmerkingen
De klasse bevat leden van openbare gegevens die u kunt gebruiken om de oorzaak van de uitzondering te bepalen.
CDaoException objecten worden samengesteld en gegenereerd door lidfuncties van de DAO-databaseklassen.
Opmerking
De DAO-databaseklassen verschillen van de MFC-databaseklassen op basis van ODBC (Open Database Connectivity). Alle DAO-databaseklassenamen hebben het voorvoegsel 'CDao'. U hebt nog steeds toegang tot ODBC-gegevensbronnen met de DAO-klassen. Over het algemeen zijn de MFC-klassen op basis van DAO beter geschikt dan de MFC-klassen op basis van ODBC; De DAO-klassen hebben toegang tot gegevens, waaronder via ODBC-stuurprogramma's, via hun eigen database-engine. De op DAO gebaseerde klassen ondersteunen ook DDL-bewerkingen (Data Definition Language), zoals het toevoegen van tabellen via de klassen, zonder DAO rechtstreeks aan te roepen. Zie CDBException voor informatie over uitzonderingen die zijn gegenereerd door de ODBC-klassen.
U hebt toegang tot uitzonderingsobjecten binnen het bereik van een CATCH-expressie . U kunt ook objecten uit uw eigen code gooien CDaoException met de globale functie AfxThrowDaoException .
In MFC worden alle DAO-fouten uitgedrukt als uitzonderingen, van het type CDaoException. Wanneer u een uitzondering van dit type ondervangt, kunt u lidfuncties gebruiken CDaoException om informatie op te halen uit DAO-foutobjecten die zijn opgeslagen in de verzameling Fouten van de database-engine. Wanneer elke fout optreedt, worden een of meer foutobjecten in de verzameling Fouten geplaatst. (Normaal gesproken bevat de verzameling slechts één foutobject. Als u een ODBC-gegevensbron gebruikt, krijgt u waarschijnlijk meerdere foutobjecten.) Wanneer een andere DAO-bewerking een fout genereert, wordt de verzameling Fouten gewist en wordt het nieuwe foutobject in de verzameling Fouten geplaatst. DAO-bewerkingen die geen fout genereren, hebben geen effect op de verzameling Fouten.
Zie het bestand DAOERR.H voor DAO-foutcodes. Zie voor verwante informatie het onderwerp 'Fouten in gegevenstoegang met ingesloten gegevens' in DAO Help.
Zie de artikelen Exception Handling (MFC) en Uitzonderingen: Database-uitzonderingen voor meer informatie over het verwerken van uitzonderingen in het algemeen of over CDaoException objecten. Het tweede artikel bevat voorbeeldcode die de verwerking van uitzonderingen in DAO illustreert.
Overnamehiërarchie
CDaoException
Requirements
Rubriek:afxdao.h
CDaoException::CDaoException
Maakt een CDaoException object.
CDaoException();
Opmerkingen
Normaal gesproken maakt het framework uitzonderingsobjecten wanneer de code een uitzondering genereert. U hoeft zelden expliciet een uitzonderingsobject te maken. Als u een CDaoException van uw eigen code wilt weggooien, roept u de globale functie AfxThrowDaoException aan.
Mogelijk wilt u echter expliciet een uitzonderingsobject maken als u directe aanroepen naar DAO maakt via de DAO-interfaceaanwijzers die MFC-klassen inkapselen. In dat geval moet u mogelijk foutinformatie ophalen uit DAO. Stel dat er een fout optreedt in DAO wanneer u een DAO-methode aanroept via de DAODatabases-interface naar de databaseverzameling van een werkruimte.
De DAO-foutgegevens ophalen
CDaoExceptionEen object maken.Roep de getErrorCount-lidfunctie van het uitzonderingsobject aan om te bepalen hoeveel foutobjecten zich in de verzameling Fouten van de database-engine bevinden. (Normaal gesproken slechts één, tenzij u een ODBC-gegevensbron gebruikt.)
Roep de lidfunctie GetErrorInfo van het uitzonderingsobject aan om één specifiek foutobject tegelijk op te halen, op basis van index in de verzameling, via het uitzonderingsobject. U kunt het uitzonderingsobject beschouwen als een proxy voor één DAO-foutobject.
Bekijk de huidige CDaoErrorInfo-structuur die
GetErrorInfowordt geretourneerd in het m_pErrorInfo gegevenslid. De leden geven informatie over de DAO-fout.Herhaal indien nodig stap 3 en 4 in het geval van een ODBC-gegevensbron voor meer foutobjecten.
Als u het uitzonderingsobject op de heap hebt gemaakt, verwijdert u het met de
deleteoperator wanneer u klaar bent.
Zie het artikel Uitzonderingen: Database-uitzonderingen voor meer informatie over het afhandelen van fouten in de MFC DAO-klassen.
CDaoException::GetErrorCount
Roep deze lidfunctie aan om het aantal DAO-foutobjecten op te halen in de verzameling Fouten van de database-engine.
short GetErrorCount();
Retourwaarde
Het aantal DAO-foutobjecten in de verzameling Fouten van de database-engine.
Opmerkingen
Deze informatie is handig voor het doorlopen van de verzameling Fouten om elk van een of meer DAO-foutobjecten in de verzameling op te halen. Als u een foutobject per index of op DAO-foutnummer wilt ophalen, roept u de lidfunctie GetErrorInfo aan.
Opmerking
Normaal gesproken is er slechts één foutobject in de verzameling Fouten. Als u echter met een ODBC-gegevensbron werkt, kan er meer dan één zijn.
CDaoException::GetErrorInfo
Retourneert foutinformatie over een bepaald foutobject in de verzameling Fouten.
void GetErrorInfo(int nIndex);
Parameterwaarden
nIndex
De index van de foutgegevens in de verzameling Fouten van de database-engine voor zoekactie op index.
Opmerkingen
Roep deze lidfunctie aan om de volgende soorten informatie over de uitzondering te verkrijgen:
Foutcode
Bron
Description
Help-bestand
Help-context
GetErrorInfo slaat de informatie op in het gegevenslid van m_pErrorInfo het uitzonderingsobject. Zie m_pErrorInfo voor een korte beschrijving van de geretourneerde informatie. Als u een uitzondering van het type CDaoException veroorzaakt door MFC, wordt het m_pErrorInfo lid al ingevuld. Als u ervoor kiest om DAO rechtstreeks aan te roepen, moet u de lidfunctie van GetErrorInfo het uitzonderingsobject zelf aanroepen om deze in te vullen m_pErrorInfo. Zie de structuur CDaoErrorInfo voor een gedetailleerde beschrijving.
Zie het artikel Uitzonderingen: Database-uitzonderingen voor informatie over DAO-uitzonderingen en voorbeeldcode.
CDaoException::m_nAfxDaoError
Bevat een uitgebreide MFC-foutcode.
Opmerkingen
Deze code wordt verstrekt in gevallen waarin een specifiek onderdeel van de MFC DAO-klassen is mislukt.
Mogelijke waarden zijn:
NO_AFX_DAO_ERROR De meest recente bewerking heeft geen uitgebreide MFC-fout veroorzaakt. De bewerking kan echter andere fouten van DAO of OLE hebben geproduceerd, dus moet u m_pErrorInfo en mogelijk m_scode controleren.
AFX_DAO_ERROR_ENGINE_INITIALIZATION MFC kan de Microsoft Jet-database-engine niet initialiseren. OLE kan niet worden geïnitialiseerd of het is mogelijk onmogelijk geweest om een exemplaar van het DAO-database-engineobject te maken. Deze problemen suggereren meestal een slechte installatie van DAO of OLE.
AFX_DAO_ERROR_DFX_BIND Een adres dat wordt gebruikt in een DFX-functieaanroep (DAO Record Field Exchange) bestaat niet of is ongeldig (het adres is niet gebruikt om gegevens te binden). Mogelijk hebt u een ongeldig adres doorgegeven in een DFX-aanroep of is het adres mogelijk ongeldig geworden tussen DFX-bewerkingen.
AFX_DAO_ERROR_OBJECT_NOT_OPEN U hebt geprobeerd een recordset te openen op basis van een querydef of een ingediendefobject dat niet in een open staat was.
CDaoException::m_pErrorInfo
Bevat een aanwijzer naar een CDaoErrorInfo structuur die informatie biedt over het DAO-foutobject dat u het laatst hebt opgehaald door GetErrorInfo aan te roepen.
Opmerkingen
Dit object bevat de volgende informatie:
| Lid CDaoErrorInfo | Information | Meaning |
|---|---|---|
m_lErrorCode |
Foutcode | De DAO-foutcode |
m_strSource |
Bron | De naam van het object of de toepassing die de fout oorspronkelijk heeft gegenereerd |
m_strDescription |
Description | Een beschrijvende tekenreeks die is gekoppeld aan de fout |
m_strHelpFile |
Help-bestand | Een pad naar een Windows Help-bestand waarin de gebruiker informatie over het probleem kan krijgen |
m_lHelpContext |
Help-context | De context-id voor een onderwerp in het DAO Help-bestand |
Zie de structuur CDaoErrorInfo voor meer informatie over de informatie in het CDaoErrorInfo object.
CDaoException::m_scode
Bevat een waarde van het type SCODE waarmee de fout wordt beschreven.
Opmerkingen
Dit is een OLE-code. U hoeft deze waarde zelden te gebruiken, omdat in bijna alle gevallen specifiekere MFC- of DAO-foutinformatie beschikbaar is in de andere CDaoException gegevensleden.
Zie de onderwerpstructuur van OLE-foutcodes in de Windows SDK voor meer informatie over SCODE. Het SCODE-gegevenstype wordt toegewezen aan het HRESULT-gegevenstype.