On a freshly built PC running Windows 7, I have installed SQL Anywhere 12. I set up an ODBC System DSN using the Sybase 32 bit ODBC Administrator that was installed with SQL Anywhere 12.
Everything works just fine until I soft reboot (restart). Then I can not connect to the database. I receive the error message "Could not connect to the database. The ODBC driver manager could not find the data source. The SQL Anywhere ODBC drive is not correctly installed.".
If I then go into the above mentioned ODBC Administrator and delete the System DSN and recreate it everything works fine (until I reboot). If I simply go into configure for the one that is failing, make a cosmetic change and then save it, this will not resolve the problem. However, if I simply rename one that had failed on a previous test iteration, it will now work.
It is as if the DSN I set up is active in memory or some kind of cache but not really being written to the registry.
asked 06 Feb '13, 12:41
Did you install both the 32-bit and 64-bit ODBC drivers? Sometimes it helps. Microsoft has implemented a lot of magic behind the scenes to deal with DSNs to avoid (or, unfortunately in some cases, create) bitness problems.
If you have both a 32-bit and 64-bit version of the ODBC driver installed, they will have the same driver "name" and applications of both bitness can then see DSNs regardless of the bitness of the driver manager used to create them. Behind the scenes, the OS replicates portions of the DSNs and alters the path to the ODBC driver as necessary based on the bitness of the application.
answered 06 Feb '13, 14:24