ERROR [IM014] [Microsoft][ODBC Driver Manager] The specified DSN contains an architecture mismatch between the Driver and Application

Did you create a DSN, but your application cannot access the DSN?

I created a DSN, but could not connect via SSIS. It seems that the DSN I created was 64-bit, while the application I was using (SSIS) could only connect to 32-bit DSNs.

After some research I have realized that there are two different ODBC Administrator runtimes on a 64-bit machine.

The first ODBC Manager is used to manage 64-bit data sources, while the second is used to manage 32-bit data sources.

If you are running a 32-bit Operating System, you will have only 32 bit drivers installed. If you are using a 64 bit machine, the default ODBC Manager will be for 64-bit data sources.

Use this ODBC Manager to Review 64-Bit Data Source Names


Use this ODBC Manager to Review 32-Bit Data Source Names


If you are trying to access a DSN in your application and receive the error “ERROR [IM014] [Microsoft][ODBC Driver Manager] The specified DSN contains an architecture mismatch between the Driver and Application” check to see if you have a DSN configured for the architecture of your application ( 32-bit / 64-bit ).

I create my DSNs twice – once for 32 bit architecture and once for 64 bit architecture. My naming convention is as follows:

  • DSN_NAME_64 created using c:\windows\system32\odbcad32.exe
  • DSN_NAME_32 created using c:\windows\sysWOW64\odbcad32.exe
Good Luck

40 thoughts on “ERROR [IM014] [Microsoft][ODBC Driver Manager] The specified DSN contains an architecture mismatch between the Driver and Application

    1. Thanx, Thanx, Thanx, Thanx, Thanx. After a 1/2 day searching within many people solutions, i’ve found THE SOLUTION for my problem.

  1. Thanks, too.

    But there is one error. The 32 Bit ODBC Manger is under “c:\windows\sysWOW64\” and the 64 Bit ODBC Manager is under “c:\windows\system32\”.

    There are to easy ways to proof this.
    First, the “WOW64” in “sysWOW64” means “Windows on 64 Bit Windows”.
    Second, if you run the “c:\windows\system32\odbcad32.exe” you don’t see a “*32” after the executable in the task manager. On the other hand if you start the “c:\windows\sysWOW64\odbcad32.exe” you see a “*32” after the executable in the task manager.
    The “*32” after the executable in the task manager means that the executable runs in 32 bit mode.

    Nevermind, great post and a solution after a lot of try and error.

  2. In fact, the system32 directory is the 64-bit driver and the SysWOW64 is the 32-bit driver.
    First disbelieve me. Then look up Wow64 on Wikipedia. Then believe me.

  3. So fast! Thanks. For be sure, just use the managers:

    Use this ODBC Manager to Review 32 Bit Data Source Names


    Use this ODBC Manager to Review 64 Bit Data Source Names


    Add the DNS to one or the other and proob.

    Againg ty for sharing

  4. Hi all
    When i run the ODBC Driver on my client, it works. I can choose one database of a list. (Win7 32bit)
    When i try this with the Server, i cant find any Database listed. Manually input doesent work. (WinServer 2008)😦
    I tryed with both odbcad32.exe, on that one from “SysWOW64” i can install the driver, from the other one i will become an error like this: “The setup routines for the Lotus Notes Driver (*.nsf) ODBC driver could not be loaded due system error code 193:.”
    How can i fix my problem? ^^

  5. I’m having a similar issue, when I go to add the DSN in the system32\obcad32.exe; I don’t have the drivers required, instead of having a big list like I do in the other one I only have 2 drivers which aren’t the ones I need.

    I have downloaded loads of drivers now but none seem to work?

  6. I can’t create DSN under c:\windows\sysWOW64\odbcad32.exe because the Oracle 11g driver isn’t in the list although it’s in the driver list of c:\windows\sysWOW64\odbcad32.exe. How to add the ora11g driver to c:\windows\sysWOW64\odbcad32.exe ?

  7. John – you nailed it! Thanks for the insight on this one; you completely resolved the connection issue I was having with a new 64-bit client I introduced into the network. I normally just grabbed the shortcut from Control Panel, Admministrative Tools. Sure enough, that links to the \system32 version. After manually launching the odbcad32.exe from the \sysWOW64 directory and entering the same connection info, I got the client to connect to the server. PERFECT!

  8. Thanks, I also had the sql error, reading Kenneth Henseler’s reply resolved my issue. Manually launching the exe and adding the dsn that way. What I also had to do was save the Access 2010 file as an mdb (it normally only saves as accdb), to do this you have to go to file > save & publish, click on Save Database As, choose either 2002-2003 Database or Access 2000 and then click on Save As – you are saving as an mdb.

  9. I was having this error returned on a VB.NET project. One project was able to access the 32bit ODBC Data Source created by a 3rd party app while the other project, running the same code, was throwing this error. I finally found that under Compile in the project properties that one app I had set the target CPU to x86 while the one that was throwing the exception had Any CPU to be set. There is probably a better way but the data source will remain 32bit for awhile yet. Thanks because this helped point me in the right direction.

  10. Thank you for that! Easy and understandable guide. Fixed my problem immediatley when I tried to access Crystal Reports with Postgre.

  11. Note :I used c:\windows\sysWOW64\odbcad32.exe to create a data source that connects to a 32-bit driver under 64-bit platform,. I also tried c:\windows\system32\odbcad32.exe to connect a 64-bit driver but there was no driver for MS Excel. Only driver for SQL Server was available

  12. 1st i install only “mysql-connector-odbc-5.3.4-winx64.msi” but Crystal Report not connecting its giving error then i install “mysql-connector-odbc-5.3.4-win32.msi” after that when i connect , its successfully connect .

  13. huhh it actually works and despite the strange naming: wow64\ is 32 bit, system32\ is 64 bit (!). Obviously no need for Microsoft to create different dialog titles, warnings or anything.😛 Now I have to look into how to get my database backup imported to v11 being v8… thanks

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s