![]() ![]() ![]() |
|
BDE (Borland Database Engine) je 32-bitové jádro modulu
přístupu k databázi pro prostředky firmy Borland. BDE nabízí dostatečnou
množinu služeb pro vývojáře databázových aplikací typu klient/server.
BDE má architekturu založenou na ovladačích. Každý databázový
formát nebo datový zdroj obvykle vyžaduje samostatný ovladač BDE. Daný
ovladač může podporovat uzavřenou rodinu datových zdrojů. Např. ovladač
dBASE podporuje dBASE III, dBASE IV a novější a FoxPro verze 2.0, 2.5 a
2.6.
BDE je navržen objektově orientovaně, což usnadňuje jeho
rozšiřování a přizpůsobování. K rozšíření BDE na přístup k dalšímu databázovému
systému, jednoduše instalujeme příslušný ovladač BDE nebo ovladač ODBC
pro tento databázový systém.
V prostředí klient/server, aplikační a vývojové nástroje
sídlí na klientském počítači, zatímco datové zdroje jsou umístěny na databázovém
serveru. BDE poskytuje transparentní přístup k databázovým serverům a lokálním
databázím.
Fáze | Úloha | Funkce BDE |
Příprava | Inicializace modulu přístupu k databázi (BDE) | DbiInit |
Příprava | Otevření databáze | DbiOpenDatabase |
Příprava | Otevření tabulky a získání kurzoru | DbiOpenTable |
Příprava | Získání vlastností kurzoru | DbiGetCursorProps |
Příprava | Alokování vyrovnávací paměti záznamu | Zodpovídá aplikace |
Příprava | Získání deskriptoru položky | DbiGetFieldDescs |
Příprava | Zahájení režimu odložených aktualizací | DbiBeginDelayedUpdates |
Získávání | Umístění ukazatele a získání záznamu do vyrovnávací paměti | DbiGetNextRecord |
Získávání | Získání položky z vyrovnávací paměti | DbiGetField |
Aktualizace | Aktualizace položky a zápis do vyrovnávací paměti záznamu | DbiPutField |
Aktualizace | Aktualizace tabulky novým záznamem | DbiModifyRecord |
Aktualizace | Aplikování odložených změn na tabulku | DbiApplyDelayedUpdates |
Ukončení | Ukončení režimu odložených aktualizací | DbiEndDelayedUpdates |
Ukončení | Uzavření kurzoru | DbiCloseCursor |
Ukončení | Uzavření databáze | DbiCloseDatabase |
Ukončení | Ukončení BDE (modulu přístupu k databázi) | DbiExit |
Typ | Jméno | Popis |
DBITBLNAME | szName | Jméno tabulky |
UINT16 | iFNameSize | Plná velikost jména souboru |
DBINAME | szTableType | Typ tabulky |
UINT16 | iFields | Počet položek v tabulce |
UINT16 | iRecSize | Velikost záznamu (logický záznam) |
UINT16 | iRecBufSize | Velikost záznamu (fyzický záznam) |
UINT16 | iKeySize | Velikost klíče |
UINT16 | iIndexes | Počet současně dostupných indexů |
UINT16 | iValChecks | Počet testů přípustnosti |
UINT16 | iRefIntChecks | Počet omezení referenční integrity |
UINT16 | iBookMarkSize | Velikost záložky |
BOOL | bBookMarkStable | true, pokud kurzor podporuje trvalé záložky |
DBIOpenMode | eOpenMode | dbiREADWRITE, dbiREADONLY |
DBIShareMode | eShareMode | dbiOPENSHARED, dbiOPENEXCL |
BOOL | bIndexed | true, pokud index je aktivní |
INT16 | iSeqNums | 1: má sekvenční čísla (Paradox), 0: má čísla záznamů (dBASE, FoxPro), <0 (-1,-2,...): nic (SQL a Access). |
BOOL | bSoftDeletes | true, pokud kurzor podporuje měkké rušení (pouze dBASE a FoxPro) |
BOOL | bDeletedOn | true, pokud zrušené záznamy jsou viditelné |
UINT16 | iRefRange | Pokud > 0, pak má aktivní obnovení |
XLTMode | exltMode | Překladový režim: xltNONE (fyzické typy), xltFIELD (logické typy) |
UINT16 | iRestrVersion | Číslo verze |
BOOL | bUniDirectional | true, pokud kurzor je jednosměrný (pouze SQL) |
PRVType | eprvRights | Tabulková úroveň práv |
UINT16 | iFmlRights | Rodinná práva (pouze Paradox) |
UINT16 | iPasswords | Počet pomocných hesel (pouze Paradox) |
UINT16 | iCodePage | Kódová stránka (0 pokud není známa) |
BOOL | bProtected | true, pokud tabulka je chráněna heslem |
UINT16 | iTblLevel | Na ovladači závislá tabulková úroveň |
DBINAME | szLangDriver | Symbolické jméno jazykového ovladače |
BOOL | bFieldMap | true, pokud mapování položek je aktivní |
UINT16 | iBlockSize | Velikost datového bloku ve slabikách (je-li) |
BOOL | bStrictRefInt | true, pokud se vyžaduje přesná referenční integrita |
UINT16 | iFilters | Počet filtrů |
BOOL | bTempTable | true, pokud tabulka je dočasná |
Když alokujeme paměť, pak jsou významné následující prvky:
Typ | Jméno | Popis |
UINT16 | iFldNum | Číslo položky (1 až n) |
DBINAME | szName | Specifikuje jméno položky. |
UINT16 | iFldType | Specifikuje typ položky. V závislosti na překladovém režimu kurzoru je vracen fyzický nebo logický typ položky. |
UINT16 | iSubType | Specifikuje podtyp položky. To může být logický podtyp BDE nebo fyzický podtyp ovladače v závislosti na překladovém režimu. |
UINT16 | iUnits1 | Specifikuje počet znaků, číslic apod. Pro logické typy položek, toto číslo je konzistentní přes ovladače. Pro fyzické typy položek, interpretace závisí na ovladači. Pro většinu ovladačů iUnits1 je přesnost a iUnits2 je měřítko. |
UINT16 | iUnits2 | Specifikuje počet desetinných míst, apod. Viz specifikace pro iUnits1. |
UINT16 | iOffset | Specifikuje ofset této položky ve vyrovnávací paměti záznamu. Závisí na překladovém režimu. |
UINT16 | iLen | Specifikuje délku této položky. Závisí na překladovém režimu. |
UINT16 | iNullOffset | Specifikuje ofset indikátoru NULL pro tuto položku ve vyrovnávací paměti záznamu. Při nule není indikátor NULL. |
FLDVchk | efldvVchk | Specifikuje zda k položce je přiřazen test přípustnosti. |
FLDRights | efldrRights | Specifikuje přístupová práva pro položku. |
iFldNum | Specifikuje ID položky závisející na ovladači. Pro většinu ovladačů je to hodnota od 1 do curProps.iFields, mimo tabulek Paradoxu. |
Pro konzistentnost nad ovladači, používáme pořadí položky v poli deskriptorů. DbiGetField a DbiPutField používají pořadová čísla od 1 do n.
Typ BDE | Ekvivalent C | Popis |
fldZSTRING | char[ ] | Nulou ukončené pole znaků. |
fldUINT16 | unsigned int | 16 bitové celé číslo bez znaménka. |
fldINT16 | int | 16 bitové celé číslo. |
fldUINT32 | unsigned long | 32 bitové celé číslo bez znaménka. |
fldINT32 | long | 32 bitové celé číslo. |
fldFLOAT | double | 64 bitové číslo v pohyblivé řádové čárce. |
fldFLOATIEEE | long double | 80 bitové číslo v pohyblivé řádové čárce. |
fldBOOL | int | 16 bitová hodnota, true =1; false = 0. |
fldBYTES | unsigned char[ ] | Pole slabik pevné délky. |
fldVARBYTES | unsigned char[ ] | Délkou předcházené pole slabik. |
Návratový kód | Výsledná akce |
cbrABORT | Celá operace COMMIT je zrušena. Je to implicitní návratový kód, pokud funkce zpětného volání není registrována. |
cbrSKIP | Chybná aktualizační operace je přeskočena a proces COMMIT pokračuje pro zbývající aktualizace. |
cbrCONTINUE | Chybná aktualizační operace je přeskočena a proces COMMIT pokračuje pro zbývající aktualizace. |
cbrRETRY | Chybná aktualizační operace bude zopakována. |
cbrPARTIALASSIST | Změny uživatele jsou drženy v cache. V tomto případě, uživatel aplikuje změny na původní tabulku. |
![]() ![]() ![]() |
|