Visual Basic (8d.)

DUOMENŲ BAZĖS

Iki šiol nekalbėjome apie informacijos saugojimą išorinėje atmintyje.

VB turi specialų duomenų valdymo reguliatorių, kuris leidžia lengvai

susirišti su duomenų bazėmis: Access, dBASE, FoxPro, Paradox. Paprasčiausia

tai atlikti Windows duomenų bazei Access.

Paprasčiausių duomenų bazių struktūra

VB reguliatoriai gali susirišti su duomenų bazėmis, saugančiomis

duomenis lentelėse (tables), kurios susideda iš laukų (fields) ir įrašų

(records).

Lentelė – tai duomenų grupė, kurią galime įsivaizduoti, kaip lentelę

popieriuje, susidedančią iš stulpelių (laukų) ir eilučių (įrašų).

Pavyzdžiui, bazėje apie knygas gali būti lentelės: autoriai, leidyklos,

knygos ir pan. Autorių lentelės įrašuose – žinios apie autorių,

suskirstytos į laukus (vardas, pavardė, adresas ir pan.).

Pavyzdys. Lentelės vardas: “AUTORIAI” ; laukų vardai: VARDAS,

PAVARDĖ, ADRESAS

|Jonas |Grafomanas |Varpo 2, Balbieriškis, |

|Petras |Plunksnėnas |Klausučių km., Kėdainių |

| | |r. |

Duomenų tvarkytojas

VB savo sudėtyje turi instrumentą bazėms kurti, duomenims redaguoti.

Tai duomenų tvarkytojas (Data Manager). Į jį patenkame meniu komanda AddIns

/ Visual Data Manager.

Naudosimės jau sukurtomis duomenų bazėmis, pavyzdžiui,

DEVSTUDIOVBBIBLIO.MDB. Access bazė sukuriama atskiroje vienoje byloje

(bylos plėtinys .MDB).

Duomenų reguliatorius

Duomenų reguliatorius (data control), turintis piktogramą [pic] ,

įgalina naudotis sukurta duomenų baze, peržiūrėti ir redaguoti įrašų

turinį. Tam pasitelkiami mums jau žinomi reguliatoriai (pavyzdžiui, teksto

laukai arba etiketės). Tokiu atveju jie vadinami surištaisiais

reguliatoriais, nes duomenų reguliatorius juos suriša su duomenų bazėmis.

Duomenų reguliatorius vienu metu gali bbūti surištas tiktai su vienu –

taip vadinamu dabartiniu (current) įrašu.

Ryšių schema, esant dviems surištiems reguliatoriams, parodyta 10.5

pav.

[pic]

10.5 pav. Ryšių schema surištiems reguliatoriams.

Norint panaudoti duomenų reguliatorių, reikia atlikti tokius veiksmus.

1) Sukurti formoje duomenų reguliatorių, sakykim vardu Data1, kurio

vaizdas – 10.6 pav.

[pic]

10.6 pav. Duomenų reguliatorius.

2) Duomenų reguliatoriaus savybei DatabaseName (duomenų bazės vardas)

priskirti duomenų bazės bylos vardą su plėtiniu .MDB (jei duomenų bazė jau

sukurta).

3) Savybėje RecordSource (įrašo šaltinis) nurodyti lentelę, su kuria

dirbsite (pavyzdžiui, AUTORIAI); bazės lentelių vardai būna matomi šios

savybės įvedimo lauke.

4) Formoje sukurti teksto lauką (pavyzdžiui, vardu Text1) duomenų

bazės informacijai išvesti bei redaguoti. Vietoje teksto lauko galima

naudoti jungiklį, paveikslą, piktogramą bei etiketę.

5) Teksto lauko Text1 savybėje DataSource (duomenų šaltinis) nurodyti

duomenų reguliatoriaus, ssu kuriuo ji surišama, vardą (Data1). Taip Text1

tampa surištu reguliatoriumi.

6) Teksto lauko Text1 savybėje DataField (duomenų laukas) nurodyti

lauko, su kuriuo dirbsite, vardą.

7) Greta surišto teksto lauko paprastai kuriama etiketė,

paaiškinanti, kas teksto dėžėje rodoma (pavyzdžiui, VARDAS).

8) Kiekvienam toliau kuriamam surištam reguliatoriui, pavyzdžiui,

PAVARDĖ, teks kartoti 4 – 7 etapus. Rezultatas programą vykdant – 10.7 pav.

[pic]

10.7 pav. Surištų reguliatorių ir duomenų reguliatoriaus vaizdas.

Duomenų reguliatorius turi keturis mygtukus keisti įrašams. Mygtukų

funkcijos parodytos 10.8 pav.

[pic]

10.8 pav. Duomenų rreguliatoriaus vaizdas ir mygtukai.

Surištuose reguliatoriuose, šiuo atveju – teksto laukuose, galite

keisti įrašų turinį. Kai tik pereisite prie kito įrašo, pakeitimai

ankstesniame įraše bus išsaugoti duomenų bazėje.

Naujų įrašų pridėjimas

Iki šiol mokėjome pridėti naują įrašą tik projektuojant, naudojant

duomenų tvarkytoją. Tačiau ir programą vykdant tenka papildyti bazes

naujais įrašais. Pavyzdžiui, atsiranda naujas sistemos vartotojas, klientas

ir pan. Tenka panaudoti metodą, vykdomą, pavyzdžiui, paspaudus mygtuką

“Pridėti” (10.9 pav.).

[pic]

9.9 pav. Naujų įrašų pridėjimas, šalinimas ir išsaugojimas.

Bazės įrašų objektas yra Recordset (įrašų aibė), o jo metodas,

pridedantis naują įrašą – AddNew (pridėti naują). Todėl mygtuko “Pridėti”

įvykio procedūroje reiktų atlikti:

Data1.Recordset.AddNew

Tai pridėtų naują įrašą į įrašų aibės galą, visi surišti

reguliatoriai išsivalytų ir būtų galima juos užpildyti nauja informacija.

Tačiau mūsų įrašas dar neišsaugotas duomenų bazėje. Išsaugojimas

automatiškai įvyksta perėjus prie kito įrašo arba panaudojus metodą Update

(atnaujinti). Todėl mygtuko “Išsaugoti” įvykio procedūroje būtų metodas:

Data1.Recordset.Update

Įrašų šalinimas.

Įrašas, kuris šiuo metu matomas, dabartinis įrašas, šalinamas metodu

Delete. Pašalinus nereikia naudoti Update metodo, tačiau dabartinis

pašalintas įrašas tampa neteisingu (invalid). Bandymas redaguoti tokį jau

panaikintą įrašą sukeltų sisteminę klaidą. Todėl pašalinus reikia pereiti

prie naujo įrašo, mygtuko “Pašalinti” įvykio procedūroje įrašant:

Data1.Recordset.Delete

Data1.Recordset.MoveNext

Metodo MoveNext veikimas atitinka rodyklės “Pereiti į sekantį įrašą”

paspaudimą duomenų reguliatoriuje.

Programiškam įrašų keitimui yra ir kiti metodai, atitinkantys

rodykles duomenų bazių reguliatoriuje: MovePrevious (pereiti įį prieš buvusį

įrašą), MoveFirst (pereiti į pirmą įrašą), MoveLast (pereiti į paskutinį

įrašą).

40 Užduotis

VB duomenų bazei, esančiai DEVSTUDIOVBBIBLIO.MDB, paruošti

programinę sąsają.

Formoje:

• autorių vardų ir pavardžių

• knygų

peržiūros galimybės.