Az információk meghatározásához a BDE-t hívjuk segítségül. A uses listában fel kell sorolnunk a DB, valamint a BDE unit-ok neveit.
Ahhoz, hogy a BDE függvények működjenek, alkalmazásunknak rendelkeznie kell legalább egy aktív adatkapcsolattal. A mellékelt példában, a DBDEMOS adatbázis animals.dbf táblájához kapcsolódtunk.
Az alábbiakban bemutatásra kerülő BDE függvényekben közös, hogy egy eredménylistát adnak vissza, amely egy hdbicur típusú változóban kerül tárolásra. A hdbicur tartalma virtuális táblaként kezelhető, így sorait folyamatosan beolvashatjuk egy végjelig.
A virtuális tábla egy elemének beolvasására a DbiGetNextRecord függvény szolgál.
repeat
dr:=DbiGetNextRecord(TmpCursor,dbiNOLOCK,@FieldType,Nil);
if (dr<>DBIERR_EOF) then
ListBox1.Items.Add(FieldType.szName);
until (dr<>DBIERR_NONE);

DbiGetNextRecord
function DbiGetNextRecord (
hCursor: hDBICur;
eLock: DBILockType;
pRecBuff: Pointer;
precProps: pRECProps
): DBIResult;
Egy tábla következő sorának beolvasására szolgál.
Paraméterek
hCursor: hDBICur
A tábla azonosítója.
eLock: DBILockType
Megadhatjuk, hogy a hozzáférés során milyen zárolást alkalmazzunk.
| Érték |
Jelentése |
| dbiNOLOCK |
Nincs zárolás. |
| dbiREADLOCK |
Olvasás zárolása. |
| dbiWRITELOCK |
Írás zárolása. |
pRecBuff: Pointer
Ebben a paraméterben kell megadnunk azt a változót, amelybe a beolvasott rekord tartalma kerül. A változó típusa függ a beolvasandó adatszerkezettől.
precProps: pRECProps
Ebben a paraméterben is egy változót adhatunk meg, amelybe a lekérdezett rekord tulajdonságai kerülnek. Ha nincs szükségünk ezekre az adatokra, használhatjuk a Nil értéket is.
Visszatérési érték
| Érték |
Jelentése |
| DBIERR_NONE |
A következő rekord beolvasása sikeresen megtörtént. |
| DBIERR_EOF |
A tábla véget ért. |
| DBIERR_INVALIDHNDL |
A tábla azonosítója érvénytelen. |
| DBIERR_ALREADYLOCKED |
A tábla már zárolva van. A zárolást ugyanaz session és felhasználó végezte. |
| DBIERR_FILELOCKED |
A táblát már egy másik felhasználó zárolta. |
Milyen adatbázisokat érhetünk el?
Ezt a DbiOpenDatabaseList függvény segítségével kérdezhetjük le.

DbiOpenDatabaseList
function DbiOpenDatabaseList (
var hCur: hDBICur
): DBIResult;
Egy eredménytáblát készít az elérhető adatbázisok adataiból.
Paraméterek
var hCur: hDBICur
Ebben a változóban egy kurzort kapunk meg, amely a lekérdezés eredménytáblájának legelejére mutat.
Visszatérési érték
| Érték |
Jelentése |
| DBIERR_NONE |
A lekérdezés sikeresen megtörtént. |
| DBIERR_INVALIDHNDL |
A hCur paraméterben Nil érték lett megadva. |
Az eredménytábla egyes elemei DBDesc típusúak.
| Struktúra tag |
Jelentése |
| szName: DBINAME |
Az adatbázis, alias neve. |
| szText: DBINAME |
Leírás. |
| szPhyName: DBIPATH |
Fizikai elérési út. |
| szDbType: DBINAME |
Adatbázis típusa. |
Milyen adatelérési meghajtókat használhatunk?
Erre a DbiOpenDriverList függvény kínál megoldást.

DbiOpenDriverList
function DbiOpenDriverList (
var hCur: hDBICur
): DBIResult;
Egy eredménytáblát készít az elérhető adatelérési meghajtók adataiból.
Paraméterek
var hCur: hDBICur
Ebben a változóban egy kurzort kapunk meg, amely a lekérdezés eredménytáblájának legelejére mutat.
Visszatérési érték
| Érték |
Jelentése |
| DBIERR_NONE |
A lekérdezés sikeresen megtörtént. |
| DBIERR_INVALIDHNDL |
A hCur paraméterben Nil érték lett megadva. |
| DBIERR_NOCONFIGFILE |
Nem volt elérhető információ. |
| DBIERR_OBJNOTFOUND |
Nem volt elérhető meghajtó. |
Az eredménytábla DRVType típusú elemekből áll.
| Struktúra tag |
Jelentése |
| szType: DBINAME |
Típusnév. |
| szText: DBINAME |
Leírás. |
| edrvCat: DRVCat |
A meghajtó típusa. Lehet: drvFILE (állomány alapú, mint a DBase, Paradox), drvSQLBASEDSERVER (SQL szerver alapú), drvOTHERSERVER (más szerver alapú). |
| bTrueDb: BOOL |
Igaz érték esetén, a meghajtó támogatja a valódi adatbázis kezelési koncepciót. |
| szDbType: DBINAME |
Az adatbázis típusa. |
| bMultiUser: BOOL |
Igaz érték esetén a meghajtó támogatja a több felhasználós hozzáférést. |
| bReadWrite:BOOL |
Igaz érték esetén a hozzáférés típusa írás és olvasás, hamis érték esetén csak olvasás. |
| bTrans: BOOL |
Igaz érték esetén a meghajtó támogatja a tranzakciók kezelését. |
| bPassThruSQL: BOOL |
Igaz érték esetén a meghajtó támogatja az SQL-t. |
| bLogIn: BOOL |
Igaz érték esetén a meghajtó bejelentkezést igényel. |
| bCreateDb: BOOL |
Igaz érték esetén a meghajtó képes új adatbázis létrehozására. |
| bDeleteDb: BOOL |
Igaz érték esetén a meghajtó képes az adatbázis törlésére. |
Milyen adattáblái vannak egy megadott adatbázisnak?
Ezt a DbiOpenTableList függvény segítségével kérdezhetjük le.

DbiOpenTableList
function DbiOpenTableList (
hDb: hDBIDb;
bExtended: Bool;
bSystem: Bool;
pszWild: PChar;
var hCur: hDBICur
): DBIResult
Egy eredménytáblát készít a megadott adatbázisban elérhető adattáblák adataiból.
Paraméterek
hDb: hDBIDb
Az adatbázis azonosítója.
bExtended: Bool
Hamis érték esetén csak az alap információk kerülnek lekérdezésre, igaz érték esetén több információ kerül lekérdezésre.
bSystem: Bool
Csak SQL esetén használható. Igaz érték esetén a lekérdezésben a rendszertáblák is szerepelnek, hamis érték esetén nem.
pszWild: PChar
Itt egy kereső feltételt adhatunk meg, pl.: *.dbf.
var hCur: hDBICur
Ebben a változóban egy kurzort kapunk meg, amely a lekérdezés eredménytáblájának legelejére mutat.
Visszatérési érték
| Érték |
Jelentése |
| DBIERR_NONE |
A lekérdezés sikeresen megtörtént. |
| DBIERR_INVALIDHNDL |
A hCur paraméterben Nil érték lett megadva. |
A lekérdezés eredménye TBLBaseDesc, vagy TBLFullDesc lehet, a bExtended paraméter értékétől függően.
A TBLBaseDesc struktúra tagjai:
| Struktúra tag |
Jelentése |
| szName: DBITBLNAME |
Tábla neve. |
| szFileName: DBITBLNAME |
Állomány neve. |
| szExt: DBIEXT |
Állomány kiterjesztése. |
| szType: DBINAME |
A meghajtó típusa. |
| dtDate: DBIDATE |
Dátum. |
| tmTime: TIME |
Idő. |
| Size: UINT32 |
Méret, bájtokban. |
| bView: BOOL |
Csak SQL esetén használt. Értéke igaz, ha a tábla csak nézet. |
A TBLFullDesc struktúra tblExt tagján keresztül elérhetőek a következő tagok is.
| Struktúra tag |
Jelentése |
| szStruct: DBINAME |
Fizikai struktúra. |
| iRestrVersion: UINT16 |
Verziószám. |
| iRecSize: UINT16 |
Fizikai rekordméret. |
| iFields: UINT16 |
Mezők száma. |
| iIndexes: UINT16 |
Indexek száma. |
| iValChecks: UINT16 |
Mezőellenőrzések száma. |
| iRintChecks: UINT16 |
Hivatkozások száma. |
| iRecords: UINT32 |
Rekordok száma. |
| bProtected: BOOL |
Igaz értéke esetén, a tábla védett. |
| bValidInfo: BOOL |
Ha értéke hamis, akkor a kiterjesztett információk egy része nem elérhető. |
Milyen mezőtípusokat használhatunk például egy Paradox vagy DBase típusú táblában, verzióktól függően?
Ezt a DbiOpenFieldTypesList függvény segítségével kérdezhetjük le.

DbiOpenFieldTypesList
function DbiOpenFieldTypesList (
pszDriverType: PChar;
pszTblType: PChar;
hCur: hDBICur
): DBIResult
A megadott típusú és verziójú adatbázis típus által használható mezőtípusokat adja meg.
Paraméterek
pszDriverType: PChar
Meghajtó típusa.
pszTblType: PChar
Verziószám. Ha a ’’ értéket használjuk, akkor az az alapértelmezett verziót jelöli.
hCur: hDBICur
Ebben a változóban egy kurzort kapunk meg, amely a lekérdezés eredménytáblájának legelejére mutat.
Visszatérési érték
| Érték |
Jelentése |
| DBIERR_NONE |
A lekérdezés sikeresen megtörtént. |
| DBIERR_UNKNOWNDRIVER |
Ismeretlen meghajtó. |
Az eredménylistát tartalmazó tábla egy rekordja FLDType típusú.
| Struktúra tag |
Jelentése |
| iId: UINT16 |
A mezőtípus azonosítója. |
| szName: DBINAME |
Szimbolikus név. |
| szNativeName: DBINAME |
SQL kifejezésekben használt név. |
| szText: DBINAME |
Leírás. |
| iPhyType: UINT16 |
Típus. |
| iXltType: UINT16 |
Alapértelmezett, lefordított típus. |
| iXltSubType: UINT16 |
Alapértelmezett, lefordított altípus. |
| MaxUnits1: UINT16 |
Maximális egység 1. |
| MaxUnits2: UINT16 |
Maximális egység 2. |
| PhySize: UINT16 |
Fizikai méret, egységenként. |
| bRequired: BOOL |
Igaz érték esetén a mező támogatja, a ki kell tölteni lehetőséget. |
| bDefaultVal: BOOL |
Igaz érték esetén a mező támogatja, az alapértelmezett érték használatát. |
| bMinVal: BOOL |
Igaz érték esetén a mező támogatja, a minimum érték használatát. |
| bMaxVal: BOOL |
Igaz érték esetén a mező támogatja, a maximum érték használatát. |
| bRefIntegrity: BOOL |
Igaz érték esetén a mező támogatja, a hivatkozások használatát. |
| bOtherChecks: BOOL |
Igaz érték esetén a mező támogatja, az egyéb ellenőrzések használatát. |
| bKeyed: BOOL |
Igaz érték esetén a mezőből lehet kulcsmezőt készíteni. |
| bMultiplePerTable: BOOL |
Igaz érték esetén egy adattáblában több ilyen mező is szerepelhet. |
| iMinUnits1: UINT16 |
Minimális egység 1. |
| iMinUnits2: UINT16 |
Minimális egység 2. |
| bCreateable: BOOL |
Igaz érték esetén a mező létrehozható. |