Delphi – Kompakcija Access baze podataka (I deo)

Kada radite sa aplikacijama koje rade sa bazama podataka, vi vrlo ฤesto menjate podatke u bazi, time sama baza postaje fragmentirana i zauzima viลกe prostora na disku nego ลกto je neophodno. Periodiฤno, moลพete izvrลกiti kompakciju (compacting) baze podataka radi defragmentacije fajla. U ovom i narednom prilogu obradiฤ‡emo kako uz pomoฤ‡ Delphi-ja izvrลกiti kompaktovanje Access baze podataka, i to iz programskog koda.

Kako vremenom dodajete i briลกete podatke (slogove) u tabele baze podataka, vaลกa baza postaje sve viลกe i viลกe fragmentirana i nepotrebno zauzima dodatni prostor na disku. U procesu komaktovanja kreira se kopija baze podataka, i vrลกi se rearanลพiranje naฤina smeลกtaja baze na hard disku. Baza podataka koja je kompaktovana uobiฤajeno je manja po obimu i ฤesto se mnogo brลพe pokreฤ‡e.

Kreirajte novi Delphi projekt sa jednom korisniฤkom formom. Na formu dodajte jedno dugme (Button) i dve Edit kontrole. Sa „ActiveX“ kartice komponenti dodajte na formu i kontrolu „JetEngine“ (da biste je videli na paleti, sa menija izaberite „Project> Import Type Library“, te u narednom dijalogu instalirajte „Microsoft Jet and Replication Objects 2.x Library (Version 2.x)“ biblioteku). Naziv prve Edit kontrole preimenujte u „edIzvor“, a druge u „edCilj“, te dugme preimenujte u „btnKompakt“. Na kraju preimenujte i JetEngine kontrolu u samo „JE“, a forma bi trebalo da bude sliฤna ovoj na slici. Klasa „TJetEngine“ poseduje metod CompactDatabase, koji ฤ‡emo koristiti, a koji poseduje dva parametra – dva stringa za ADO konekciju. Ova dva stringa je odnose na izvoriลกnu i odrediลกnu bazu podataka. Metod CompactDatabase kompaktovaฤ‡e bazu podataka i daฤ‡e vam opcije izmene verzije baze, enkripcije i lozinke. Enkripcijom ฤ‡ete zaลกtiti bazu podataka od ฤitanja uz pomoฤ‡ nekih usluลพnih programa ili tekst procesora, a takva baza i dalje ostaje ฤitljiva i moลพete je otvoriti uz pomoฤ‡ Access-a ili iz Delphi koda.

Na naลกoj formi, polje „edIzvor“ namenjeno je za upis baze podataka (i njene putanje) koju ลพelimo da kompaktujemo, a drugo tekst polje za specifikaciju odrediลกne baze podataka. Istovremeno, unutar stringa konekcije navodimo niz konekcionih parametara kojima odreฤ‘ujemo naฤin otvaranja izvorne baze podataka i naฤin kako ฤ‡e se izvrลกiti kompakcija na odrediลกnoj bazi. Minimalno je da kod konekcije navedete samo putanje do izvora/odrediลกta (unutar osobine Data Source) i naziv baze podataka. Kada koristite metod CompactDatabase, ne moลพete snimiti kompaktovanu bazu podataka pod istim nazivom (nazivom izvoriลกne baze), a takoฤ‘e metod zahteva i to da odrediลกna baza podataka ne postoji. Nastaviฤ‡emo priฤu u sledeฤ‡em prilogu.

Pratite Krstaricu na www.krstarica.com