Installation of global database
I have made some changes to the global database installation in version 4.65 beta and now I have integrated these changes into the current version (4.60.0040) as well.
I have been receiving more and more reports of errors connecting to the global database, mostly - I think - under Windows Vista, and it's time to fix this problem.
Up to now, the global database has been implemented using a Microsoft Access 2000 database, using the Jet 4.0 database engine. The Jet database engine is now a deprecated component. You may even have to download and install Jet 4.0 to get this to work at all.
It has always been possible to migrate the database to SQL Server and specify a custom connection string in the Add-In's settings dialog (even in the VB6 Add-In). If several members of a team use the Add-In, this would always be a good idea. About a year ago I wrote an article on how to transfer the global database to SQL server (although I'm not sure that this transfers the constraints and indices correctly).
Basically, I would like to move the global database to SQL Server for all users, but I don't really want to add SQL Server Express to my installation. However, the default installation of Visual Studio installs SQL Server Express 2005 anyway, so most users of the Add-In are going to have it installed.
The new installation contains a database file for SQL Server 2005, which it copies to Common App Data\MultiLang. If SQL Server is installed on the local system, it uses the SMO interface to try to attach the database file to an existing instance of SQL Server.
I can see that some users might object to this. If there are multiple SQL Server instances, then it just uses the first instance that it finds (and can connect to). If you have a better idea, let me know. However, I want an installation which runs without asking cryptic questions and simply installs a system that works.
If attaching the database to SQL Server fails, then the installation falls back to the old Access database.
I know that the current installation has some problems:
- it only works with SQL Server Express 2005 and not 2008. Apparently if an application references the SQLServer.SMO assembly from SQL Server 2008, it is compatible with SQL Server 2005, but not the other way around. That seems to me to be a screwed up approach to compatibility, but there you go.
- it does not import data from an existing (access) global database file.
I will be trying to sort out these issues in the next few days (or weeks).
Phil