dbExpress an sich ist schon nicht schlecht, wenn man z.B. die kommerziellen Produkte betrachtet die einige Möglichkeiten bieten.
Die
Unicode-Unterstützung für InterBase könnte besser sein (TStringField ist auch in Delphi 2009+ immer noch AnsiString, daher müßte ich alle persistenten Feldkomponenten umstellen wenn die Datenbank auf UTF-8 umgestellt wird).
Auch dass der InterBase dbExpress Treiber keine Möglichkeit bietet Millisekunden in TimeStamp Feldern zu speichern führte zu Problemen - aber es liegt wohl an der nativen Clientbibliothek und den darin verwendeten Datetime-Strukturen (allerdings können andere native InterBase Clients mit Millisekunden operieren, wie man in IBExpert sieht).
Und im Zusammenspiel mit DevExpress cxDBDateTime Feldern ist aufgefallen, dass ungültige Datumswerte von dbExpress nicht abgefangen werden, mit unangenehmen Folgen: wenn man den Datumswert in einer cxDBDateTime Kompponente manuell komplett "leert" und dann den Datensatz abschickt, wird der Wert -70000 in die Datenbank geschrieben. Und das führt zu Bauchschmerzen beim SELECT. (-70000 ist der Datums-'Basiswert' der DevExpress Komponenten, 0 ist es in Delphi).
Dennoch ist insgesamt dbExpress bisher weitgehend stabil gewesen... Die
BDE habe ich zuletzt 1997 gesehen :)