While migrating an application from MSSQL 2005 and Server 2003 to MSSQL 2008 x64 and Server 2008 x64, I ran into an problem with the ODBC connection. The application uses a System DSN to connect to my BlackBerry Enterprise Server, BESMgmt. Settings were identical on both boxes, and verification within the ODBC manager worked.
When I tried to verify the DSN from within the app, I received the following error:
Can't connect, error [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
A variant of this error is:
Microsoft OLE DB Provider for Microsoft OLE DB Provider for ODBC Drivers (0×80004005)
[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
Most of the search results for that error turned up permission problems, and recommended explicitly granting access to the Registry key at the
HKLM\SOFTWARE\ODBC\ODBC.INI. This wasn't my problem, and is also the reason that User DSNs exist.
It turns out that if you launch the ODBC Manager from the Start menu, you're getting the 64-bit version. 32-bit applications don't see DSNs created in the 64-bit ODBC Manager, and will fail one of the errors above.
The 32-bit ODBC Manager is located at
Launch that to manage DSNs for 32-bit applications and resolve this error.