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.