Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Soms wilt u de document-/weergavearchitectuur van het framework mogelijk niet gebruiken in uw databasetoepassingen. In dit onderwerp wordt uitgelegd:
Wanneer u geen documenten zoals documentserialisatie hoeft te gebruiken.
Toepassingswizardopties ter ondersteuning van toepassingen zonder serialisatie en zonder documentgerelateerde menuopdrachten zoals Nieuw, Openen, Opslaan en Opslaan als.
Werken met een toepassing die gebruikmaakt van een minimaal document.
Hoe je een toepassing structureert zonder document of weergave.
Wanneer u geen documenten nodig hebt
Sommige toepassingen hebben een uniek concept van een document. Deze toepassingen laden meestal alle of de meeste bestanden uit de opslag in het geheugen met een opdracht Bestand openen . Ze schrijven het bijgewerkte bestand allemaal tegelijk terug naar de opslag met de opdracht Bestand opslaan of Opslaan als . Wat de gebruiker ziet, is een gegevensbestand.
Voor sommige categorieën toepassingen is echter geen document vereist. Databasetoepassingen werken op het gebied van transacties. De toepassing selecteert records uit een database en presenteert deze aan de gebruiker, vaak één voor één. Wat de gebruiker ziet, is meestal één huidige record, die mogelijk de enige in het geheugen is.
Als uw toepassing geen document nodig heeft voor het opslaan van gegevens, kunt u een deel van de document-/weergavearchitectuur van het framework verwijderen. Hoeveel u uitgeeft, hangt af van de benadering die u verkiest. U kunt het volgende doen:
Gebruik een minimaal document als locatie om een verbinding met uw gegevensbron op te slaan, maar gebruik geen normale documentfuncties, zoals serialisatie. Dit is handig als u verschillende weergaven van de gegevens wilt en alle weergaven wilt synchroniseren, ze allemaal tegelijk wilt bijwerken, enzovoort.
Gebruik een framevenster waarin u rechtstreeks tekent in plaats van een weergave te gebruiken. In dit geval laat u het document weg en slaat u de gegevens en gegevensverbindingen op in het framevensterobject.
Opties van de Toepassingswizard voor Documenten en Weergaven
De MFC-toepassingswizard heeft verschillende opties in databaseondersteuning selecteren, die worden vermeld in de volgende tabel. Als u de MFC-Toepassingswizard gebruikt om een toepassing te maken, produceren al deze opties toepassingen met documenten en weergaven. Sommige opties bieden documenten en weergaven die onnodige documentfunctionaliteit weglaten. Zie Databaseondersteuning, MFC-toepassingswizard voor meer informatie.
| Optie | Bekijk | Document |
|---|---|---|
| Geen | Afgeleid van CView. |
Biedt geen ondersteuning voor databases. Dit is de standaardoptie. Als u de optie ondersteuning voor document-/weergavearchitectuur selecteert op de pagina Toepassingstype, MFC-toepassingswizard , krijgt u volledige documentondersteuning, waaronder serialisatie en Nieuw, Openen, Opslaan en Opslaan als in het menu Bestand . Zie Toepassingen zonder bijhorende documenten. |
| Alleen headerbestanden | Afgeleid van CView. |
Biedt het basisniveau van databaseondersteuning voor uw toepassing. Inclusief Afxdb.h. Voegt koppelingsbibliotheken toe, maar maakt geen databasespecifieke klassen. U kunt recordsets later maken en deze gebruiken om records te onderzoeken en bij te werken. |
| Databaseweergave zonder bestandsondersteuning | Afgeleid van CRecordView |
Biedt documentondersteuning, maar geen serialisatieondersteuning. Document kan recordset opslaan en meerdere weergaven coördineren; biedt geen ondersteuning voor serialisatie of de opdrachten Nieuw, Openen, Opslaan en Opslaan als . Bekijk toepassingen met minimale documenten. Als u een databaseweergave opneemt, moet u de bron van de gegevens opgeven. Bevat databaseheaderbestanden, koppelingsbibliotheken, een recordweergave en een recordset. (Alleen beschikbaar voor toepassingen met de optie voor document-/weergavearchitectuur ondersteuning die is geselecteerd op de pagina Toepassingstype van de MFC-toepassingswizard.) |
| Databaseweergave met bestandsondersteuning | Afgeleid van CRecordView |
Biedt volledige documentondersteuning, waaronder serialisatie- en documentgerelateerde menuopdrachten voor bestanden . Databasetoepassingen werken doorgaans per record in plaats van per bestand en hoeven dus niet te worden geserialiseerd. Mogelijk hebt u echter een speciaal gebruik voor serialisatie. Bekijk toepassingen met minimale documenten. Als u een databaseweergave opneemt, moet u de bron van de gegevens opgeven. Bevat databaseheaderbestanden, koppelingsbibliotheken, een recordweergave en een recordset. (Alleen beschikbaar voor toepassingen met de optie voor document-/weergavearchitectuur ondersteuning die is geselecteerd op de pagina Toepassingstype van de MFC-toepassingswizard.) |
Zie Serialisatie: Serialisatie versus Database-invoer/uitvoer voor een bespreking van alternatieven voor serialisatie en alternatieve toepassingen voor serialisatie.
Toepassingen met minimale documenten
De wizard MFC-toepassing heeft twee opties die ondersteuning bieden voor toepassingen voor gegevenstoegang op basis van formulieren. Elke optie maakt een CRecordView-afgeleide weergaveklasse en een document. Ze verschillen in wat ze uit het document weglaten.
Document zonder bestandsondersteuning
Selecteer de optie Databaseweergave zonder bestandsondersteuning van de toepassingswizarddatabase als u geen documentserialisatie nodig hebt. Het document dient de volgende nuttige doeleinden:
Het is een handige plek om een
CRecordsetobject op te slaan.Dit gebruik parallelleert gewone documentconcepten: het document slaat de gegevens op (of in dit geval een set records) en de weergave is een weergave van het document.
Als uw toepassing meerdere weergaven (zoals meerdere recordweergaven) weergeeft, biedt een document ondersteuning voor het coördineren van de weergaven.
Als in meerdere weergaven dezelfde gegevens worden weergegeven, kunt u de
CDocument::UpdateAllViewslidfunctie gebruiken om updates te coördineren voor alle weergaven wanneer een weergave de gegevens wijzigt.
U gebruikt deze optie meestal voor eenvoudige toepassingen op basis van formulieren. De toepassingswizard ondersteunt automatisch een handige structuur voor dergelijke toepassingen.
Document met bestandsondersteuning
Selecteer de optie Databaseweergave met bestandsondersteuning van de toepassingswizard wanneer u een alternatieve toepassing hebt voor de Bestand-menuopdrachten met betrekking tot documenten en documentserialisatie. Voor het gegevenstoegangsgedeelte van uw programma kunt u het document op dezelfde manier gebruiken als beschreven in document zonder bestandsondersteuning. U kunt bijvoorbeeld de serialisatiefunctie van het document gebruiken om een geserialiseerd gebruikersprofieldocument te lezen en te schrijven waarin de voorkeuren van de gebruiker of andere nuttige informatie worden opgeslagen. Zie Serialisatie versus database-invoer/uitvoer voor meer ideeën.
De toepassingswizard ondersteunt deze optie, maar u moet de code schrijven waarmee het document wordt geserialiseerd. Sla de geserialiseerde informatie op in documentgegevensleden.
Toepassingen waarbij er geen document beschikbaar is.
Soms wilt u een toepassing schrijven die geen documenten of weergaven gebruikt. Zonder documenten slaat u uw gegevens (zoals een CRecordset object) op in uw framevensterklasse of uw toepassingsklasse. Eventuele aanvullende vereisten zijn afhankelijk van of de toepassing een gebruikersinterface presenteert.
Databaseondersteuning met een gebruikersinterface
Als u een gebruikersinterface hebt (anders dan bijvoorbeeld een opdrachtregelinterface van de console), wordt uw toepassing rechtstreeks in het clientgebied van het framevenster geplaatst in plaats van in een weergave. Een dergelijke toepassing gebruikt geen CRecordView, CFormView of CDialog voor de hoofdgebruikersinterface, maar gebruikt normaal gesproken CDialog voor gewone dialoogvensters.
Toepassingen zonder documenten schrijven
Omdat de toepassingswizard het maken van applicaties zonder documenten niet ondersteunt, moet u uw eigen CWinApp-afgeleide klasse schrijven en, indien nodig, ook een CFrameWnd- of CMDIFrameWnd-klasse maken. Overschrijf CWinApp::InitInstance en verklaar een toepassingsobject als:
CYourNameApp theApp;
Het framework levert nog steeds het message-mapmechanisme en vele andere functies.
Databaseondersteuning gescheiden van de gebruikersinterface
Sommige toepassingen hebben geen gebruikersinterface of slechts een minimale interface nodig. Stel dat u schrijft:
Een tussenliggend gegevenstoegangsobject dat andere toepassingen (clients) aanroepen voor speciale verwerking van gegevens tussen de toepassing en de gegevensbron.
Een toepassing die gegevens verwerkt zonder tussenkomst van de gebruiker, zoals een toepassing die gegevens van de ene databaseindeling naar een andere verplaatst of die berekeningen uitvoert en batchupdates uitvoert.
Omdat er geen document eigenaar is van het CRecordset object, wilt u het waarschijnlijk opslaan als een ingesloten gegevenslid in uw CWinApp-afgeleide toepassingsklasse. Alternatieven zijn:
Helemaal geen permanent
CRecordsetobject behouden. U kunt NULL doorgeven aan de constructors van recordsetklassen. In dat geval maakt het framework een tijdelijkCDatabaseobject met behulp van de informatie in de lidfunctie vanGetDefaultConnectde recordset. Dit is de meest waarschijnlijke alternatieve benadering.CRecordsetHet object een globale variabele maken. Deze variabele moet een pointer zijn naar een recordsetobject dat u dynamisch maakt in uwCWinApp::InitInstanceoverschrijving. Dit voorkomt dat u het object probeert te maken voordat het framework wordt geïnitialiseerd.Recordsetobjecten gebruiken zoals u zou doen in de context van een document of weergave. Recordsets aanmaken in de ledenfuncties van uw toepassing of de framevensterobjecten.