A Delphi az adatbázis komponensek és az adatforrás közötti kétirányú kommunikációhoz DataSource és DataLink objektumokat használ.
Az adatforrás arra használja ezeket az objektumokat, hogy jelezze a vizuális komponensek számára az új adat megjelenését vagy változását. A komponensek pedig arra használják ezt a kapcsolatot, hogy lekérdezzék vagy módosítsák egy mező tartalmát.
A DB unitban implementált TDataLink, az adatkapcsolatok terén ősosztálynak számít. Ezt az osztályt csak nagyon ritkán használjuk közvetlenül. Általában valamelyik leszármazott osztályát használjuk, vagy készítünk egy új osztályt, amit ebből származtatunk. Az egyik legfontosabb leszármazott osztálya a TFieldDataLink, amely segítségével egy adatmezőhöz kapcsolódhatunk.
Az osztály implementációja a DBCtrls unitban található.
A TFieldDataLink osztályt általában más osztályokba beépített módon használjuk, az adatkapcsolat megvalósításához. Feladata, hogy hidat képezzen az adatforrás és egy vizuális komponens között.
A mellékelt példaprogramban arra használjuk fel ezt az osztályt, hogy tulajdonságai, metódusai és eseményei segítségével adatokat vigyünk fel és módosítsunk egy táblában. Az adatok megjelenítéséhez és szerkesztéséhez hagyományos Edit komponenseket használunk. Az Edit mezők frissítését és a felvitt adat ellenőrzését a TFieldDataLink osztály eseményei segítségével vezéreljük és korlátozzuk.
Az FLink (TFieldDataLink) objektumot nekünk kell létrehoznunk a Form, Create metódusában. Itt kell beállítanunk az egyes tulajdonságait és eseménykezelőit. Az objektumot az adattábla Nev mezőjéhez rendeljük hozzá. Az Edit1 mezőt a TFieldDataLink osztály segítségével, az Edit2-t pedig hagyományos módon kezeljük.
Az FLink objektum, DataSource tulajdonságában megadhatunk egy DataSource objektumot, amely az FLink-et hozzáköti az adattáblához. A FieldName property-ben megadhatjuk annak az adatmezőnek a nevét, amelyhez kapcsolódni szeretnénk. Ezután metódusok és események segítségével kezelhetjük a megjelenítendő adatok változását vagy módosítását.
Property-k

Active
property Active: Boolean;
Csak olvasható. Ha a FieldDataLink-hez kapcsolt adatforrás nincs megnyitva, akkor az értéke hamis, ellenkező esetben igaz.

ActiveRecord
property ActiveRecord: Integer;
Az objektum rendelkezik egy bufferrel, amely egynél több rekordot is tartalmazhat. A buffer méretét a BufferCount property-ben állíthatjuk be. A bufferen belül az aktív rekordot ezzel a property-vel jelölhetjük ki.

Bof
property Bof: Boolean;
Csak olvasható. Értéke igaz ha az adatforrás rekordmutatója az első helyen áll, ellenkező esetben hamis.

BufferCount
property BufferCount: Integer;
Az objektum rekord bufferének méretét állíthatjuk be vele. Értéke az egyszerre beolvasandó rekordok számát jelenti. Például egy táblázat esetében egyszerre olvashatjuk be a látható rekordokat.

CanModify
property CanModify: Boolean;
Csak olvasható. Értéke megadja, hogy a FieldDataLink-hez rendelt komponens módosíthatja-e az adott rekordot.

Control
property Control: TComponent;
Ezen a property-n keresztül a FieldDataLink-hez egy vizuális komponenst rendelhetünk. Ez a property arra szolgál, hogy a hozzárendelt vizuális komponens tulajdonságait és metódusait el tudjuk érni. A komponens elérése során típuskényszerítést kell alkalmazni.

DataSet
property DataSet: TDataSet;
Csak olvasható. A DataSource property-ben megadott adatforrás közvetlen elérését teszi lehetővé.

DataSourceFixed
property DataSourceFixed: Boolean;
Ha értékét igazra állítjuk a DataSource property tartalmának módosítását letilthatjuk, hamis érték megadása esetén pedig engedélyezhetjük azt.

Editing
property Editing: Boolean;
Csak olvasható. Segítségével megtudhatjuk, hogy az adatforrás szerkeszthető módban van-e. Értéke akkor igaz, ha az adatforrás szerkesztés alatt áll.

Eof
property Eof: Boolean;
Csak olvasható. Értéke igaz, ha az adatforrás rekordmutatója az utolsó helyen áll.

Field
property Field: TField;
Csak olvasható. A FieldName property-ben megadott adatmező közvetlen elérésére szolgál.

FieldName
property FieldName: String;
Itt adhatjuk meg annak az adatmezőnek a nevét, amelyhez a FieldDataLink-et láncolni szeretnénk.

ReadOnly
property ReadOnly: Boolean;
Igaz érték megadása esetén letilthatjuk az adatforrás szerkeszthetőségét. Ha értékét olyankor állítjuk igazra, amikor az adatforrás szerkesztő módba van kapcsolva, a szerkesztő mód megszűnik.

RecordCount
property RecordCount: Integer;
Csak olvasható. A bufferban található rekordok számát kérdezhetjük le vele.
Események

OnActiveChange
property OnActiveChange: TNotifyEvent;
Akkor jön létre, amikor az adatforrás aktív állapota változik.

OnDataChange
property OnDataChange: TNotifyEvent;
Minden alkalommal meghívódik, amikor az adatforrás valamilyen formában változik. Ez a változás lehet a rekordmutató mozgása vagy új érték megjelenése.

OnEditingChange
property OnEditingChange: TNotifyEvent;
Akkor jön létre, amikor az adatforrás szerkesztő üzemmódba kerül, vagy éppen kilép abból.

OnUpdateData
property OnUpdateData: TNotifyEvent;
Akkor jön létre, amikor valamilyen függőben lévő változtatásokat végre kell hajtani az adatforráson.
Metódusok

Edit
function Edit: Boolean;
Az adatforrás szerkesztő módba történő kapcsolására szolgál.
Visszatérési érték
Igaz, ha az adatforrás szerkesztő módba állítható volt. Ha az adatforrást nem sikerült szerkeszthető állapotba kapcsolni, a visszatérési érték hamis.

Modified
procedure Modified;
Végrehajtja azokat a változásokat, amelyek a hozzárendelt mezőre vonatkoznak, de még nem lettek végrehajtva.

Reset
procedure Reset;
Megszakít minden függőben lévő változtatást és kiváltja az OnDataChange eseményt.

UpdateRecord
procedure UpdateRecord;
Végrehajt minden függőben lévő módosítást.