|
|
Zapo4vam napravo s primer
dbmopen(%DBASE, "tempfile", 0666) or die "Can`t open DBM: $!\n";
cyrcle();
dbmclose %DBASE;
sub cyrcle {
sleep 3;
while (($key, $val) = (each %DBASE)) {
print "$key $val\n";
}
}
Zna4i kakto vijdate tova e cikyl koito 4ete ot nai-obiknovena baza danni,
nqma zna4enie kak sym go napravil.Vyprosyt e 4e kogato dopylnq tazi syshtata DBM ot drugo mqsto dokato cikylyt e v deistvie tozi syshtiqt cikyl ne "vijda" novite danni.Toest vse edno ne e dobavqno kym DBM-to.Zabelqzva gi edinstveno ako sloja funkciqta dbmopen to4no predi cikyla while i dbmclose vednaga sled kato svyrshi while.Kajete mi kak bez da se zatvarq %DBASE da mogat da se 4etat promenite vyv bazata po vsqko vreme ili me opytete kym nqkoi drug vid DB zashtoto ne sym mnogo zapoznat s tqh no trqbva da e neshto prosto kato DBM-to.
Regards
| |
Тема
|
Re: 4etene ot DBM
[re: Teшkapcko_koпeлe]
|
|
Автор | pencho666 (Нерегистриран) |
Публикувано | 30.10.03 14:14 |
|
Otgovora na vaprosa "zashto e taka" e elementaren - dbmopen raboti prez tie, i keshira okolu 8K (po podrazbirane) ot klucha na DBM faila. Ako DBM faila ti e malak (kakto i predpolagam) tova koeto updatvash nai veroiatno popada v kesha ili e zasegnato ot kesha i zatova ne se vijda v programkata.
Kak se reshava vaprosa - ami ti si mu nameril otgovora - taka kakto pravish dbmopen v cikala se nulira kesha vseki put. Mojesh (ako izpolzvash po savremenniat mehanizam za dostyp do DBM prez tie) da namalish kesha do minimum, no ne sam siguren che mojesh da go mahnesh vaobshte (dori da e 0, poslednata prochetena promenliva si stoi nakeshirana). Takav e jivota.
| |
|
|
|
|