Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateC
C sharpCalculatoareCorel drawDot netExcelFox pro
FrontpageHardwareHtmlInternetJavaLinux
MatlabMs dosPascalPhpPower pointRetele calculatoare
SqlTutorialsWebdesignWindowsWordXml

Colectii DAO

calculatoare



+ Font mai mare | - Font mai mic



Colectii DAO

In DAO, fiecare obiect in ierarhia obiectelor mentine una sau mai multe colectii de obiecte subordonate. De exemplu, motorul de baze de date Microsoft Jet intretine o colectie de spatii de lucru deschise. Fiecare spatiu de lucru intretine o colectie de baze de date deschise (si alte colectii, legate de securitate). Si asa mai departe.

In clasele MFC DAO, MFC nu intretine o colectie (ca CObArray) a unor obiecte C++ paralele cu legaturile DAO. Mai degraba, MFC furnizeaza functii membru si/sau date membru prin care se poate accesa o colectie prin ea insasi in DAO, unde colectiile DAO sunt stocate. De exemplu, clasa CDaoWorkspace furnizeaza functia membru GetWorkspaceCount pentru a determina cite spatii de lucru sunt in colectia spatiilor de lucru motorului de baze de date si functia membru GetWorkspaceInfo pentru a examina informatia despre orice spatiu de lucru din colectie.

In general, clasele MFC DAO furnizeaza functii similare pentru toate colectiile DAO relevante. O exceptie semnificativa este colectia recordset-urilor a obiectului baza de date. MFC nu furnizeaza functii membru GetRecordsetCount si GetRecordsetInfo in clasa CDaoDatabase. Cand se lucreaza cu inregistrari, intotdeauna exista un obiect MFC CDaoRecordset explicit. Depinde de programator urmarirea recordset-urilor deschise.

Primul element intr-o colectie DAO, la elementul 0, este elementul predefinit al colectiei. In particular, spatiul de lucru DAO predefinit este elementul 0 in colectia de spatii de lucru. Colectiile sunt implicit definite pe 0.

Urmatoarea procedura foloseste colectia TableDefs a unui obiect CDaoDatabase pentru a ilustra procesul general de accesare a unei colectii DAO.

Pentru a accesa TableDefs :

Se construieste un obiect CDaoDatabase, sau se obtine un pointer la sau de la un obiect CDaoRecordset.

Se apeleaza functia membru Open daca nu s-a obtinut un pointer de la recordset.

Se foloseste GetTableDefCount si GetTableDefInfo ale obiectului pentru a determina cate definitii de tabele contine colectia si pentru a face un loop prin colectie, obtinand informatii despre fiecare obiect definitie de tabela.

Pentru a obtine informatii despre obiecte in colectii, se apeleaza functia membru GetXInfo a clasei corespunzatoare. Aceasta functie returneaza un obiect al unei structuri CDaoXInfo.



O structura tipica de informatii arata astfel :

struct CDaoDatabaseInfo

Notatiile "Primary", "Secondary", si "All" indica care din membrii structurii MFC DAO contin informatii cand este apelata o functie ca GetDatabaseInfo. Se poate specifica ca se doreste doar informatia primara, informatia primara si secundara, sau toata informatia. Unele structuri nu include nimic sub titulatura "All".

Obiectele celor mai multe clase MFC DAO contin colectii de obiecte subordonate. De exemplu, un obiect CDaoDatabase contine obiecte colectii de definitii de tabele, definitii de interogari si relatii. Se acceseaza obiectele dintr-o colectie DAO prin functiile membru GetXCount si GetXInfo ale clasei potrivite, unde X reprezinta Database, Filed, Index, Parameter, Query, Table, Relation sau Workspace. Urmatorul tabel listeaza colectiile de acces disponibile pentru fiecare clasa MFC.

Clasa

Numara obiectele din colectie

Primeste informatii despre obiectul specificat

CDaoWorkspace

GetDatabaseCount

GetWorkspaceCount

GetDatabaseInfo

GetWorkspaceInfo

CDaoDatabase

GetTableDef

GetRealtionCount

GetQueryDefCount

GetTableDefInfo

GetRelationInfo

GetQueryDefInfo

CDaoTableDef

GetFieldCount

GetIndexCount

GetFieldInfo

GetIndexInfo

CDaoQueryDef

GetFieldCount

GetParameterCount

GetFieldInfo

GetParameterInfo

CDaoRecordset

GetFieldCount

GetIndexCount

GetFieldInfo

GetIndexInfo

Informatia returnata de functiile GetXInfo

In general, se folosesc functiile GetXCount pentru a determina legatura superioara pentru a face loop prin intreaga colectie. La fiecare iteratie a loop-ului, se apeleaza functiile GetXInfo pentru a returna informatiile. Functiile GetXInfo returneaza o referinta la un obiect din clasa CDaoXInfo, care pot fi examinate. Fiecare clasa CDaoXInfo (o structura C++ - din punct de vedere tehnic) prezinta informatii diferite. Se furnizeaza un obiect de tip CDaoXInfo in al doilea parametru.

Urmatorul tabel listeaza clasele CDaoXInfo :

Obiect

Clasa (structura)

Baza de date

CDaoDatabaseInfo

Camp

CDaoFieldInfo

Index

CDaoIndexInfo

Index de camp

CDaoIndexFieldInfo

Parametru

CDaoParameterInfo

Definitie de interogare

CDaoQueryDefInfo

Relatie

CDaoRelationInfo

Relatie de camp

CDaoRelationFieldInfo

Definitie de tabela

CDaoTableDef

Spatiu de lucru

CDaoWorkspaceInfo

Un obiect aditional DAO, obiectul de eroare, este manipulat diferit in MFC, si nu trebuie folosita modalitatea de lucru descrisa in acest paragraf pentru astfel de obiecte. Aceste obiecte sunt tratate de clasa CDaoException.

Exemplul urmator arata cum se parcurge colectia QueryDefs a unui obiect CDaoDatabase si se obtine informatie despre acesta colectie. Exemplul cauta in colectia QueryDefs o interogare particulara denumita "Senior Students", astfel ca se poate extrage orice altfel de informatie despre inregistrare - cum ar fi sirul SQL sau tipul interogarii.

// pDB este un pointer la CDaoDatabase

// Aloca un CDaoQueryDefInfo obiect pentru

// informatii

CDaoQueryDefInfo queryinfo;

int nQueries = pDB->GetQueryDefCount( );

for ( int i = 0; i < nQueries; i++ )

Codul itereaza intreaga colectie, returnand informatii despre fiecare obiect pana cand interogarea dorita este gasita.

Constante care specifica nivelul de informatii dorit

Sintaxa functiei membru GetQueryDefInfo folosita in exemplul de mai sus este :

void GetQueryDefInfo( int nIndex, CDaoQueryDefInfo& queryinfo, DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO );

In exemplu, parametrul informatiei despre interogare returneaza o referinta la un obiect CDaoQueryDefInfo. Exemplul accepta valoare predefinita AFX _DAO_PRIMARY_INFO pentru parametrul dwInfoOptions, care specifica ce informatie sa fie returnata. Urmatorul tabel listeaza optiunile in acest caz.

Constanta

Explicatie

AFX_DAO_PRIMARY_INFO

Primul nivel de informatie; in cazul definirii de interogari, aceasta include numele si tipul

AFX_DAO_SECONDARY_ INFO

Primul nivel de informatie plus al doilea nivel de informatie; in cazul definirii de interogari, aceasta include data de creare, data ultimei modificari, reutururi de inregistrari, posibilitate de reimprospatare a datelor.

AFX_DAO_ALL_INFO

Primul si al doilea nivel de informatie plus informatie aditionala; acesta include SQL, Connect si ODBC Timeout.

Explicatiile prezentate corespund datelor membru potrivite structurilor CDaoXInfo si mai mult deact atat, proprietatilor DAO.

De notat ca nivelele de informare sunt cumulative : daca se specifica un nivel inalt, cum ar fi al doilea sau toate, se primesc si nivelele inferioare de informatie.



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 1221
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved