I think some things to do and to solve are this in oder importance, in my opinion off course:
- ADO memory leaks
- Blob problems
- RefreshRow method: to update the client side current record with a refresh one from the server
- A better way to get the RecordCount value without retrieving all record into the client. most of the driver has a 'NumRows' api function to get the number of rows in the query.
- Performance, use FastMove instead of System.move and other improved string routines ussig assembler language. check the fastcode project. This solutions are already done and tested by Borland.
Check this Link:
http://dennishomepage.gugs-cats.dk/FastCodeProject.htm
- Multithreading. Thread locking using Critical sections or Mutex
- Implement CalcDefaults to TZUpdateSQL so the Resultset (client-side) can be updated when a new record is posted, this includes AutoInc field in mysql, maybe an DoAfterPostUpdates can be implemented to retreive this kind of server-side generated values.
- Default values for fields, reterieving the metadata and assign to DefaultValue field property. This value will be used whe inserting a new record in the TZQuery ot TZTable.
-Support for new database versions: MySQL 5.0, FireBird 2.x, Postgresql8.x