Pristup do databaze je pomoci asociativniho pole, ktere se dtabazi priradi pri jejim otevirani. Toto asociativni pole (nazyvane DBM pole) je pote pouzivane pro pristup do databaze a jiji modifikaci. Vytvoreni noveho prvku pole okamzite modifikuje databazi. Zruseni prvku pole okamzite zruzi zaznam v databazi.
Velikost, pocet a druh klicu a hodnot v DBM databazi je omezeny a DBM pole ma stejna omezeni. Viz. libdbm. Pokud vsak budete pouzivat klice i hodnoty do 1000 libovolnych binarnich znaku budete bez problemu.
dbmopen(%POLE,"dbmsoubor",$mod);Kde:
%pole
- je asociativni pole, jehoz jmeno se uvadi velkymi pismeny.
"dbmsoubor"
- databaze s nimz se propoji asociativni pole. Databaze je obvykle ulozena na disku jako dvojice souboru: dbmsoubor.dir a dbmsoubor.pag
$mod
- je cislo urcujici pristupovy mod k souborum databaze pro pripad, ze se databaze vytvari. Casto se pouziva 0644 (read pro vsechny a zapis pouze pro vlastnika). Pokud databaze existuje, nema parametr vyznam. Pokud nechcete databazi vytvaret pouzijte mod undef
.
dbmopen(%JMENA,"mojejmena",0644);Spoji asociativni pole %JMENA s diskovymi soubory mojejmena.dir a mojejmena.pag v aktualnim adresari. Pokud soubory neexistuji, vytvori je s pristupovym modem 0644.
Prikaz vraci vysledkovy kod 0, pokud se podari databazi otevrit nebo vytvorit.Priklad:
dbmopen(%ABC,"/etc/abc",undef) || die "nelze otevrit databaze /etc/abc";;Databaze se uzavre prikazem dbmclose(%POLE), podobne 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 }