ok, did a little research about dbexpress and this what i found :
------------
Using dbExpress
dbExpress is designed to efficiently access data and to carry little overhead. To accomplish
this, dbExpress uses unidirectional datasets.
Unidirectional, Read-Only Datasets
The nature of unidirectional datasets means that they don’t buffer records for navigation or
modification. This is where the efficiency is gained against the bi-directional BDE datasets that
do buffer data in memory. Some limitations that result are
• Unidirectional datasets only support the First() and Next() navigational methods.
Attempts to call other methods—such as Last() or Prior()—will result in an exception.
• Unidirectional dataset records aren’t editable because there is no buffer support for editing.
Note, however, that you would use other components (TClientDataset,
TSQLClientDataset) for editing.
• Unidirectional datasets don’t support filtering because this is a multirecord feature and
unidirectional datasets don’t buffer multiple records.
• Unidirectional datasets don’t support lookup fields.
------------------
so dbexpress is lighter in use but you'll loose functionallity due to it's unidirectional nature. anyway I would still prefer ADO above dbexpress for it's easy of use nature. if you want performance I'd implement some sort of caching ,but this depends on the type off app you're making....