You are on page 1of 11

MINISTERUL EDUCATIEI

ACADEMIA DE STUDII ECONOMICE


FACULTATEA CIBERNETICA STATISTICA SI INFORMATICA ECONOMICA
LUCRARE DE LABORATOR nr. 4

Studierea componentelor Borland C++ Builder Form. Crearea Editorului de text.

A efectuat: Studentul grupei CIB121 Litra Alexandru A controlat: Lector superior Ion Linga

Chisinau 2014

Scopul
Scopul acestei lucrari de laborator este:
Examenarea metodeelor de opera a datelor prin intermediul componentelor pe baza utilizarii elementelor cel mai frecvent utilizate in lucru cu baze de date.

Material didactic
Pentru elaborarea acestui laborator am folosit urmator material didactic :
Loc de lucru la PC,notite de la prilegeri si indicatii catre lucrarea de laborator,pachetul Borland C++

Cunostinte
In acest laborator vom capata urmatoare cunostinte:

Operatiile cu inscriirile din BD; Depanarea modulului in IDE Builder; Lansarea in executie a aplicatiei.

Studiu
In acest laborator vost studia urmatoarele componente:
Componentele TDataSource, TTable, TField, TDBGrid, TDBLookup; Exemplu 1. Elaborarea celei mai simple aplicatii;

Exemplu 2. Elaborarea aplicatiei care utilizeaza camp calculat ; Exemplu 3. Elaborarea aplicatiei care utilizeaza component de rasfoire a bazei de date.

Introducere
Utilizind Borland C++ Builder, pot fi create aplicatii, care lucreaza cu baze de date la care poate apela numai utilizator (BD), cit si cu SGBD pentru server cum ar fi Oracle, Sybase, Informix, Interbase, MS SQL Server, DB2, precum si cu surse ODBC. Posibilitatile C++ Builder, de creare a aplicatiilor, care utilizeaza baze de date sunt foarte largi si de aceia vom considera aici doar cele mai simple posibilitatide lucru cu tabele in bazelor de date. Multimea de date in C++ Builder este un obiect, care constra dintr-o colectie de inregistrari, fiecare continind la rindul sau campuri si indicatorul inregistrarii curente.Colectia de date poate sa corespunda intru totul unui tabel real sau sa fie rezultatul unei cereri sau poate sa reprezinte o parte din table sau sa reuneasca intre ele mai multe tabele. Colectia de date C++ Builder reprezinta urmasul clasei abstracte TDataSet (clasa abstracta este o clasa care poate genera alte clase, dar nu poate fi creat nici un exemplar de obiect al clasei).De exemplu, clasele TQuery , TTable si TStoredProc, care se contin pe pagina paletei de componente BDE mostenitori ai TDBDataSet care, la rindul sau, este urmas al TDataSet. TDataSet contine abstractii necesare pentru gestionarea directa a tabelelor sau cererilor, asigurind mijloace pentru a deschide tabelul sau a axecuta cerera si a se deplasa pe rinduri.

Sarcini
Componentele aplicatiei
In aplicatiile tip BD componenta DataSource, are legatura cu o componenta TDataSet (TTable sau TQuery) si cu una sau mai multe componente Data Controls (cum ar fi DBGrid, DBEdit). Legatura acestei componente cu componentele TDataSet si DataControls se realizeaza cu utilizarea anumitor proprietati si evenimente: Proprietatea DataSet - identifica numele componentei TDataSet. Proprietatea AutoEdit a componentei DataSource controleaza cum se initiaza redactarea in componentele Data Controls Evenimentul OnUpdateData a componentei DataSource se produce, cind utilizatorul incearca sa modifice inregistrarea curenta in TDataSet [1].

Componenta Table, reprezentata de clasa TTable, ofera un acces simplu si rapid la un tabel. Tabelele sunt mai adecvate pentru majoritatea aplicatiilor de baze de date simple. Se pot accesa proprietatile lui TField in momentul creerii cu ajutorul FieldsEditor. Dupa ce s-au adaugat cimpuri, se va putea apasa pe un cimp in editorul de cimpuri iar proprietatile pentru acel cimp vor fi afisate in ObjectInspector. Componenta TField este o clasa ale carei obiecte TDataSet .Proprietatea Fields a obiectului de tipul TDataSet permite adresarea la cimpuri aparte ale colectiei de date. Proprietatea Fields este un tablou sau set de obiecte TField, care se creeaza dinamic in timpul executiei aplicatiei. Componenta TDBGrid se utilizeaza pentru afisare, includere, stergere, redactare a datelor BD. DBGrid se utilizeaza in combinatie cu DBNavigator, desi pot fi utilizate si alte elemente de interfata, incluzind in procesoarele lor de evenimente metodele First, Last, Next, Ptior, Insert, Delete, Edit, Append, Post, Cancel a componentei TTable [2]. Componentele DBLookup se utilizeza in cazul tabelelor care au legatura una cu alta, cind este necesar sa afisam pe ecran informatia de descriere in locul cimpului ce contine codul acesteia. C++ Builder ofera 4 componente pentru vizualizarea si introducerea valorilor in tabel: Componenta TDBLookupListBox (pagina Data Controls) Componenta TDBLookupComboBox(pagina Data Controls) Componenta TDBLookupList (pagina Win 3.1) Componenta TDBLookupCombo(pagina Win 3.1)

Componentele DBLookupList si DBLookupListBox sint asemanatoare cu componentele ListBox, create pentru vizualizarea valorii intr-un tabel care se bazeaza pe o valoare din alt tabel. DBLookupList si DBLookupListBox contin un set finit de valori. Cind DBLookupList si DBLookupListBox se utilizeaza pentru introducerea datelor, utilizatorul va selecta unul din variantele din lista. DBLookupList si DBLookupListBox permit afisarea pe ecran a setului de variante, care se bazeaza pe valoarea din alt tabel [3].

Exemplu 1. Elaborarea celei mai simple aplicatii

Vom incerca sa cream cea mai simpla aplicatie pentru redactarea unui tabel BD. Pentru aceasta vom folosi tabelul COUNTRY a bazei de date BCDEMOS, care contine in softul livrat C++ Builder. Cream un proiect nou si salvam formularul sau principal ca COUNT1.CPP, iar insusi proiectul ca COUNT.BPR. Utilizind paginile BDE si DataAcces a paletei de component, amplasam componentele TTable si DataSource pe formular. Setam proprietatea DatabaseName a componentei Tabel1 egala cu BCDEMOS, proprietatea TableName egala cu COUNTRY.DB, iar proprietatea Active egala cu true. In continuare setam valoarea proprietatii DataSet a componentei DataSource1 egala cu Table1 (vezi figura 1.1).

Figura 1.1 Setarea Proprietatilor DataSource

si a proprietatilor la Table

Utilizind pagina Data Controls a paletei de componente, include componentele DBGrid si DBNavigator in formular. Atribuim proprietatii DataSource a ambelor componente valoarea DataSource1 (vezi figura 1.2)

Figura 1.2. Adaugarea DBGrid si DBNavigator

Proiectul obtinut poate fi compilat si testat. Formularul principal al aplicatiei COUNT va arata ca si in imaginea de mai jos (vezi figura 1.3) .

Figura 1.3. Aplicatia realizata

De mantionat ca exista o metoda mai simpla de crearea a unei astfel de aplicatii. In acest scop poate fi utilizata programa SQL Explorer, apelata cu ajutorul punctuli meniului Database/Explore. Selectind pagina Databases in partea stinga a ferestrei SQL Explorer si facind click pe semnul + langa numele bazei de date respective, vom selecta eticheta Summary si vom trece cu ajutorul mousu-lui semnul cu numele rabelului necesar pe un formular gol. Pe furmular vor aparea componentele TDBGrid, TDataSource si TTable. Dupa aceasta vom adauga DBNavigator, ii vom face legatura cu TDataSource si vom activa tabelul.

Exemplul 2. Elaborarea aplicatiei care utilizeaza cimpul calculat


Tabelul utilizat in exemplul precedent contine cimpurile Area (suprafata in km2) si Population (populatia). Vom incerca sa cream un cimp calculabil (vezi figura 2.1) care contine densitatea populatiei tarilor reprezentate in acest tabel. Pentru aceasta vom lansa Fields Editor pentru componenta Table1, vom include toate cimpurile acestui tabel in colectia de date si vom crea un cimp nou cu numele pop2. Selectam Float in lista Field type. Ne convingem ca a fost selectat radiobutonul Calculated, si facem clic pe butonul OK [4].

Figura 2.1. Crearea cimpului calculabil

Cream procesorul evenimentului OnCalcFields a componentei TTable: Table1pop2->Value=Table1Population->Value/Table1Area->Value; Setam valoarea proprietatii DisplayFormat a componentei Table1Pop2 egala cu .##. Lansam si testam aplicatia si ne convingem ca cimpul calculabil intr-adevar este prezent.

Exemplu 3. Elaborarea unei aplicatii care utilizeaza componenta vizualizarii bazelor de date
In acest exemolu se examineaza legatura intre tabele CUSTOMER si ORDERS din baza de date BCDEMOS, precum si utilizarea componentei DBLookupListBox pentru a afisa pe ecran numele companiei care corespunde valorii CustID, aflate in tabelul ORDERS. Pentru a crea un formular de afisare pe ecran (vezi figura 3.1) a campurilor selectate din tabelul ORDERS, urmeaza sa deschidem un proiect nou si sa salvam formularul principal ca DBLOOK1.CPP, iar proicetul ca DBLOOK.BPR. In continuare vom aplasa pe formular componentele TTable, DataSource, DVGrid, sim DBNavigator. Apoi vom atribui proprietatii DatabaseName a componentei Table1 valoarea BCDEMOS, proprietatii TableName valoarea ORDERS>DB, iar priprietatii Active valoarea true. Proprietatii DataSet a componentei DataSource1 ii vom atribui valoarea Table1, iar proprietatii AutoEdit valoarea false. Proprietatii DatSource a componentei DBGrid1 si DBNavigator1 le vom atribui valoarea DataSource1, apoi vom folosi Fields Editor, pentru a include in colectia de date Table1 cimpurile in OrderNo, CustNo, SaleDate, ItemsTotal, AmountPaid.Amplasam cimpurile in Fields Editor asa ca ArdeNo sa fie primul, iar CustNo al doilea. Aceasta aplcitaie poate fi compilata apoi lansata si testate [5].

Figura 2.1. Formularul aplicatiei Dupa includem in aplicatie componenta DBLookupListBox si setam proprietatea ei DataSource egala cu DataSource1, iar proprietatea DataField egala cu CustNo. Amplasam pe formular component noi TTable si DataSource. Setam proprietatea DatabaseName a componentei Table2 egala cu BCDEMOS, proprietatea TableName agala cu CUSTOMER>DB, iar proprietatea Active - true. Stabilim legatura intre DataSource2 si Table2.Stabilim legatura intre component DBLookupListBox1 si DataSource2, setanind valoarea proprietatii ListSource a componentei DBLookupBox1 egala cu DataSource2, a proprietatii KeyField egala cu CustNo, si a proprietatii ListField egala cu Company. Compilam aplicatia si o salvam, dupa aceasta o lansam si o testam (vezi figura 3.2). In component DBLookupListBox va fi marcat numele companiei care corespunde valorii CustNo in rindul curent DBGRid. DBLookupListBox poate fi utilizat pentru selectarea clientului dupa nume si in acest in tabelul Orders va fi stabilita valoarea respective CustNo [6].

Figura 3.2. Aplicatia cu componenta DBLookupListBox.

Concluzie
Scopul acestei lucrari de laborator a fost sa examinam metodelor de operare a datelor prin intermediul componentelor in formular, pe baza utilizarii elementelor cel mai frecvent utilizate in lucrul cu bazele de date.Ceea ce noi si am reazlizat dupa algoritm propus. In final , in urma acestei lucrari de laborator, am facut cunostinta cu lucrul cu bazele de date in Borland C++ Builder. Am elaborat trei aplicatii: una simpla, alta care utilizeaza cimpul calculat, iar cea de-a treia, utilizeraza componenta de rasfoire a bazei de date.

Bibliografie
Surse tipografice:
[1] Material metodic pentru lucrarea de laborator nr.3

Surse internet: [2] http://ro.wikipedia.org/wiki/C%2B%2B_Builder [3] http://ro.scribd.com/doc/58612069/Clase-Si-Program-Are-C-Builder [4] http://infoscience.3x.ro/cbuilder/introducere.htm [5] http://www.functionx.com/bcb/topics/msgbox.htm [6] http://facultate.regielive.ro/cursuri/calculatoare/editoare-de-texte-111796.html

You might also like