When it comes to dbExpress, I have to agree with our very own Mr One Last Compile that it may sometimes be a good idea to skip a version of
On a machine with both Delphi 6 and 7, I can build a dbExpress application at design-time without problems, but when I hit F9 to run it from the Delphi 7 IDE, I suddenly get a dbExpress Error message Operation Not Supported (see Figure 4).
» Figure 4: dbExpress Error.
At design-time it works fine, showing all the data, and even at runtime (outside the IDE) everything is fine, but when started from the Delphi 7 IDE the project raises an exception the moment the SQLConnection component is activated. It actually took me a few hours to figure out that the problem was caused by the fact that my Delphi 7 application was looking for a dbExpress DLL and found it... in the Delphi6\bin directory (and not in the Delphi7\bin directory, since Delphi6\bin came first in the PATH).
And it gets worse. Some people, you know who you are, have been installing the dbExpress DLLs (like dbexpmys.dll and dbexpmysql.dll for MySQL) in the WinNT\System32 directory on their client machines. This seemed like a good idea, but with the changes in Delphi 7 this turns out to be a potential nightmare: the Delphi 6 versions of dbexpmys.dll and dbexpmysql.dll break all Delphi 7 applications, and while Delphi 7’s version of the dbExpress MySQL DLLs work fine with Delphi 6 applications, there will be problems with Delphi 7’s dbExpress InterBase DLLs and Delphi 6 applications (due to dbExpress field mappings that have changed from one version of Delphi to another: see the README for details). If you’re the only developer, you can recompile everything with Delphi 7, burn all ties with