Vizualizarea datelor in ODBC - CRecordView
Un obiect CRecordView este o vedere care prezinta inregistrarile din baza de date in controale. Vederea este o vedere formular conectata direct la un obiect CRecordset. Vederea este creata dintr-o resursa de dialog template si prezinta campurile obiectului CRecordset in controalele dialogului. Obiectul CRecordView foloseste DDX ("dialog data exchange") si RFX ("record field exchange") pentru a automatiza miscarea datelor intre controalele formularului si campurile recordset-ului. CRecordView furnizeaza, de asemenea, o implementare initiala pentru miscare la prima, urmatoarea, anterioara sau ultima inregistrare si o interfata pentru a updata inregistrarea in mod curent in vedere.
Cel mai utilizat mod de creare a vederii este cel creat cu AppWizard. AppWizard creaza atat clasa de vedere a inregistrarilor cat si clasa inregistrarilor ca parti ale scheletului aplicatiei . Daca nu se creaza vederea cu AppWizard, ea poate fi creata mai tarziu folosind ClassWizard. Daca este nevoie de un singur formular de vedere, calea de urmat este cea cu AppWizard. Folosind ClassWizard pentru a crea o vedere de inregistrari si un recordset separat si apoi sa fie conectati este modalitatea cea mai flexibila pentru a da posibilitatea unui control marit asupra numirii claselor si fisierelor *.h si *.cpp si posibilitatea unor vederi multiple.
Pentru a face mai simpla utilizarea miscarii de la o inregistrare la alta in vedere, AppWizard creaza resurse in meniu pentru mutarea la prima, anterioara, urmatoarea sau ultima inregistrare. Daca se creaza vederea cu ClassWizard, atunci vor trebui create manual si resursele pentru navigatie cu ajutorul editorului de resurse.
CRecordView pastreaza urma pozitiei desemnate de actiunile utilizatorului in navigatia prin inregistrari pentru ca vederea sa poata updata interfata utilizator. Cand utilizatorul a mutat cursorul dupa ultima inregistrare, vederea dezactiveaza obiectele interfetei utilizator - cum ar fi item-urile din meniu sau butoanele din toolbar - pentru navigare in directia curenta.
CRecordView( LPCSTR lpszTemplateName );
CRecordView( UINT nIDTemplate );
LpszTemplateName - contine un sir terminat cu zero care este numele resursei de dialog template.
nIDTemplate - contine numarul ID al resursei de dialog template.
OnGetRecordset - returneaza un pointer la o clasa derivata din CRecordset .
virtual CRecordset* OnGetRecordset( ) = 0;
ClassWizard suprascrie functia si creaza recordset-ul daca este necesar.
IsOnFirstRecord - returneaza o valoare nenula daca inregistrarea curenta este prima inregistrare din recordset-ul asociat.
BOOL IsOnFirstRecord( );
IsOnLastRecord - returneaza o valoare nenula daca inregistrarea curenta este ultima inregistrare din recordset-ul asociat.
BOOL IsOnLasttRecord( );
OnMove - daca inregistrarea curenta este schimbata, o updateaza pe sursa de date, apoi se muta la inregistrarea specificata (urmatoare, anterioara, prima, ultima).
virtual BOOL OnMove( UINT nIDMoveCommand );
throw( CDBException );
Returneaza o valoare nenula daca mutarea a fost facuta, altfel returneaza 0 daca cererea de mutare este respinsa.
nIDMoveCommand - are una din valorile standard ID urmatoare :
ID_RECORD_FIRST Mutare la prima inregistrare din recordset.
ID_RECORD_LAST Mutare la ultima inregistrare din recordset.
ID_RECORD_NEXT Mutare la urmatoarea inregistrare din recordset.
ID_RECORD_PREV Mutare la anterioara inregistrare din recordset.
Uneori s-ar putea sa nu fie folosita arhitectura document/view pe framework in aplicatiile cu baze de date. Sectiunea de fata explica cand nu este nevoie de functionalitatea document/view cum ar fi serializarea, cum se lucreaza cu o aplicatie care foloseste un document minimal, cum se structureaza o apliacatie fara document sau vedere.
Unele aplicatii nu necesita un document. Aplicatiile MFC cu baze de date opereaza in termeni de tranzactii. Aplicatia selecteaza inregistrari dintr-o baza de date si le prezinta utilizatorului. Ceea ce vede utilizatorul este de obicei o singura inregistrare, care ar putea fi si singura activa in memorie.
Daca aplicatia nu necesita un document pentru stocarea datelor, programatorul se poate dispersa de unele sau toate elementele legate de document/view. Se poate folosi :
-un document minimal ca loc de incarcare pentru sursa de date, dar fara facilitati de document cum ar fi serializarea. Aceasta optiune este folositoare cand se doreste o vizualizare multipla a datelor, alcatuita din vederi sincronizate la tip de orice operatie.
-o fereastra tip frame,in care se afiseaza direct, altfel decat folosind o vedere. In acest caz, va fi omis documentul si vor fi incarcate datele sau conexiunile de date in obiectul fereastra-frame.
Daca se foloseste AppWizard pentru crearea aplicatiei, toate optiunile pentru bazele de date vor genera o aplicatie cu document si vedere. Unele optiuni furnizeaza o aplicatie cu facilitati ale documentului nenecesare. Iata tipurile document/view pentru fiecare optiune :
Optiune |
Vedere |
Document |
None(fara suport pentru baze de date) |
Derivata din CView. |
Document suport complet. |
Header files |
Derivata din CView. |
Document suport complet, si se pot include in vedere si document obiecte Cdatabase si CRecordset in documentul si vederea aplicatiei. |
Database view without file support |
Derivata din CRecordView |
Documentul nu suporta serializarea. Se poate folosi pentru stocarea unui obiect CRecordset si vederi multiple. |
Both a database view and a file support. |
Derivata din CRecordView |
Documentul are suport complet. Se poate folosi pentru stocarea unui obiect CRecordset si vederi multiple. |
Foarte multe aplicatii cu baze de date se folosesc de formulare. Interfata utilizatorului este un formular care contine cotroalele in care utilizatorul examineaza, introduce, sau editeaza datele. Pentru a face aplicatia bazata pe formular, se foloseste clasa CRecordView impreuna cu mecanismele RFX si DDX in modalitatile prezentate in acest capitol.
Politica de confidentialitate |
.com | Copyright ©
2024 - Toate drepturile rezervate. Toate documentele au caracter informativ cu scop educational. |
Personaje din literatura |
Baltagul – caracterizarea personajelor |
Caracterizare Alexandru Lapusneanul |
Caracterizarea lui Gavilescu |
Caracterizarea personajelor negative din basmul |
Tehnica si mecanica |
Cuplaje - definitii. notatii. exemple. repere istorice. |
Actionare macara |
Reprezentarea si cotarea filetelor |
Geografie |
Turismul pe terra |
Vulcanii Și mediul |
Padurile pe terra si industrializarea lemnului |
Termeni si conditii |
Contact |
Creeaza si tu |