předchozí lekce (1.26) | obsah kurzu | následující lekce (1.28) |
Jak jsme se již dříve seznámili, mohou být položky v databázi řetězcové, numerické, logické a datumové. S každým typem položky se přitom musí v programu pracovat odlišným způsobem. Speciálním typem položky je typ Memo, což je poznámka libovolné délky, se kterou systém KLONDAIK dokáže pracovat pouze při zobrazení na formuláři. Nejjednodušší způsob jak zjistit typ položky je zobrazit si z databázového okna dialog pro nastavení filtru databáze, ve kterém je přesný popis databáze zobrazen.
S jednou možností čtení obsahu položek databáze jsme se již seznámili v předchozí
lekci kurzu. Je to použití vyhodnocování výrazů, kdy zadáme jako výraz například pouze
jméno požadované proměnné. Další možností je použití funkce DbfReadDat pro čtení
datových položek, DbfReadLog pro čtení logických položek, DbfReadNum pro čtení
numerických položek a DbfReadStr pro čtení řetězcových položek. Jako parametr volání
funkce se použije jméno čtené položky databáze. Pro čtení memopolžky se používá funkce
buď DbfReadBin, nebo DbfReadMem v závislosti na obsahu a délky memopolžky. Platí
přitom, že pokud zadáte chybné jméno položky, případně použijete pro čtení položky funkci
jiného typu, bude vrácena implicitní prázdná hodnota.
Příklad čtení položek databáze:
Writeln(DbfReadDat('DATUM'));
Writeln(DbfReadNum('CENA'));
Writeln(DbfReadStr('NAZEV'));
Ještě dříve, než se seznámíme s možností zápisu hodnot do položek databáze,
ukážeme si, jak vytvořit v databázi nový, prázdný záznam. Používá se k tomu procedura
DbfAppendBlank, která doplní do databáze jeden nový, prázdný záznam a nastaví na něj
ukazatel databáze. Následně potom máme možnost naplnit jednotlivé položky databáze
požadovanými hodnotami.
Pro zápis do databáze se používají opět procedury rozdělené podle typu položek databáze. Pro zápis do datových položek se použije procedura DbfWriteDat, pro zápis do logických položek se použije procedura DbfWriteLog, pro zápis do numerických položek se použije procedura DbfWriteNum a pro zápis do řetězcových položek se použije procedura DbfWriteStr. Do memopoložek můžete zapisovat podle obsahu procedurou buď DbfWriteMem, nebo DbfWriteBin.
Příklad zápisu do položek databáze:
DbfWriteDat('DATUM', '24/12/1997');
DbfWriteDat('DATUM', DbfEvalStr('DTOC(DAY())'));
DbfWriteNum('CENA', 100);
DbfWriteNum('CENA', DbfReadNum('CENA')*1.1);
DbfWriteStr('NAZEV', 'KLONDAIK');
DbfWriteStr('NAZEV', DbfEvalStr('SUBSTR(NAZEV,1,10) '));
Jak již bylo několikrát uvedeno, dosti specifickou položkou databáze je memopoložka
dovolující zápis téměř neomezeného obsahu. Konkrétněji se jedná o maximálně 64 Kb
textu, pokud má být zobrazen v okně, případně do 16 Mb, pokud s memopoložkou budeme
pouze pracovat přímo z programu. Pro převod souboru do memopoložky použijte proceduru
DbfFileToBin, pro převod memopoložky do souboru slouží procedura DbfBinToFile.
Při zápisu do databáze musíte dávat pozor na to, že ztratíte nenávratně předchozí obsah položek a pokud použijete k experimentům přímo databáze používané například vámi používaným ekonomickým programem, můžete ztratit i mnohem více. Nepoužívejte proto ve vlastním zájmu v systému KLONDAIK databáze využívané jinými systémy.
předchozí lekce (1.26) | obsah kurzu | následující lekce (1.28) |