Where I work we spent a great deal of time converting from the BDE to dbExpress. Granted we did it faster than we thought it would take, it's not something I am ready to do again. Having to switch from dbExpress to another Database Layer was really not going to be an option for us. So I spent some time really reading the documentation on AnyDAC.
From what I have read this has turned from worry to exciting news, with a one thing that may need to be done.
First off let me address my worry about dbExpress.
- AnyDAC is a library that can sit on top of dbExpress, ODBC or it's own drivers.
- AnyDAC can connect to dbExpress driver through a TADPhysTDBXDriverLink component.
What is lacking that would need to developed. (Maybe already done since I have no code to look at yet, and I am just reading docs)
- Ability to have a TSQLConnection use an existing TADConnection class or vice versa.
- I basically think it would be great if AnyDAC existing connection could become an dbExpress Driver.
- I know enough about the dbExpress framework to know this is something that would be very possible to do.
- In the long run this would also allow Embarcadero to only have to support one set of drivers and not one for dbExpress and one for AnyDAC.
- If Embarcadero does something stupid and don't do this and just stop maintaining dbExpress Drivers without providing a bridge then I would have to stop upgrading Delphi versions, but I really don't see that happening.
This would allow existing dbExpress applications to start using AnyDAC without having to have two connections to the database.
Then I started looking at the features of AnyDAC and found several that are really appealing.
- Although I don't have a BDE application, I know several still do
- Existing BDE Applications have a Detailed Guide on conversion to AnyDac.
- With a step by step coverage on converting BDE Applications.
- BDE needs to go away, this really looks like a really good option for those applications.
- I primarily use Oracle but we also use Sybase, SQL Server, My SQL, SQLite and DB2. All have good support with AnyDAC with many other Databases supported.
- Sometimes I have to basically join results from two different databases. It usually results in some pretty ugly code. AnyDAC helps solve this problem by supporting Local SQL which allows you to execute SQL queries against any TDataSet descendants as the data source.
- Oracle Support includes support for more data types than the existing dbExpress Driver.
- TADMemTable is faster than TClientDataSet there was old blog entry on the comparison of speed between memory based datasets and show the difference for the various operations.
- Good support for low level trace/logging of what is going on at the API level.
- Currently has 100% of the source available I am hoping Embarcadero keeps that up. It's a big complaint of mine when it comes to dbExpress.
- Live Data Window Mode, appears to be something that could really help us with some performance on some of our search screens.
- Array DML, appears it may help us speed up some of our batch operations such as file importing.
In addition I noticed that AnyDAC really has a good cross platform story. Which might be a huge thing for the Mobile editions of Delphi. Granted I think that connecting directly to a remote database via a mobile application is a security risk.
Overall I think this will be a good thing, depending on the decisions made by Embarcadero that have yet to be made.