Manipulace s databßzφ


V∞tÜina systΘm∙ Unix mß standardnφ knihovny nazvanΘ DBM. Tato knihovna poskytuje zßkladnφ utility pro prßci s databßzφ a umo₧≥uje program∙m uklßdat data ve tvaru klφΦ hodnota na disk do souboru. Jde o trvalΘ soubory na disku, kterΘ je mo₧nΘ opravovat a rozÜi°ovat (p°idat nov² zßznam, opravit existujφcφ zßznam nebo zßznam zruÜit). DBM knihovna je jednoduchß a snadno p°φstupnß, proto ji vyu₧φvajφ takovΘ programy jako je nap°. Berkeley sendmail.

P°φstup do databßze je pomocφ asociativnφho pole, kterΘ se databßzi p°i°adφ p°i jejφm otevφrßnφ. Toto asociativnφ pole (naz²vanΘ DBM pole) je potΘ pou₧φvanΘ pro p°φstup do databßze a jejφ modifikaci. Vytvo°enφ novΘho prvku pole okam₧it∞ modifikuje databßzi. ZruÜenφ prvku pole okam₧it∞ zru₧φ zßznam v databßzi.

Velikost, poΦet a druh klφΦ∙ a hodnot v DBM databßzi je omezen² a DBM pole mß stejnß omezenφ. Viz. libdbm. Pokud vÜak budete pou₧φvat klφΦe i hodnoty do 1000 libovoln²ch binßrnφch znak∙ budete bez problΘm∙.

Otev°enφ a zav°enφ DBM pole

K propojenφ DBM databßze a DBM pole pou₧ijte p°φkaz dbmopen(), kter² mß tento tvar:
dbmopen(%POLE,"dbmsoubor",$mod);
Kde: P°φklad:
dbmopen(%JMENA,"mojejmena",0644);
Spojφ asociativnφ pole %JMENA s diskov²mi soubory mojejmena.dir a mojejmena.pag v aktußlnφm adresß°i. Pokud soubory neexistujφ, vytvo°φ je s p°φstupov²m m≤dem 0644.

P°φkaz vracφ v²sledkov² k≤d 1, pokud se poda°φ databßzi otev°φt nebo vytvo°it.P°φklad:

dbmopen(%ABC,"/etc/abc",undef) || die "nelze otevrit databaze /etc/abc";
Databßze se uzav°e p°φkazem dbmclose(%POLE), podobn∞ jako soubor.
dbmopen(%JMENA,"jmena",0644);

%JMENA=("Alena",10,"Jana",11,"Petr",12);            # naplneni databaze
foreach $klic (keys %JMENA) {                        
        print "$klic ma hodnotu $JMENA{$klic}\n";   # opis databaze
}

$JMENA{"Jana"} = 30;                                # oprava zaznamu v databazi

$JMENA{"Pepa"} = 44;                                # pridani zazanamu do databaze

foreach $klic (keys %JMENA) {                        
        print "$klic ma hodnotu $JMENA{$klic}\n";   # opis databaze
}
dbmclose (%JMENA);


P°edchozφ kapitola | Obsah

PEGASNETPEGASNET

PEGASNETPEGASNET

PEGASNETPEGASNET

PEGASNETPEGASNET