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

c:\windows\system32\odbcad32.exe

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

c:\windows\sysWOW64\odbcad32.exe

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
About these ads

I am a Database Consultant based in South Florida. I specialize in SQL Server Development and Administration. I have worked on projects including data archival, log shipping, SQL Server installation, performance tuning, database mirroring, disaster recovery and more recently data integration. Currently my role as a consultant has had me add focus to the particularly important subject of Documentation, Quality, Timeliness and Cross-Training within the realm of Technology Delivery.

Tagged with: , , , , , , ,
Posted in Uncategorized
27 comments on “ERROR [IM014] [Microsoft][ODBC Driver Manager] The specified DSN contains an architecture mismatch between the Driver and Application
  1. raitocz says:

    Thanx, you saved me! ;)

  2. Pascal says:

    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.

  3. Wow! says:

    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.

  4. Albert says:

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

    Use this ODBC Manager to Review 32 Bit Data Source Names

    c:\windows\system32\odbcad32.exe

    Use this ODBC Manager to Review 64 Bit Data Source Names

    c:\windows\sysWOW64\odbcad32.exe

    Add the DNS to one or the other and proob.

    Againg ty for sharing

  5. Very useful article! Instantly solved my problem :D

  6. Ravi says:

    Thank You John Dacosta, Yes that was good one. You saved me too :)

  7. Ashish says:

    I have tried but its not working c:\windows\sysWOW64\odbcad32.exe with vb.net project
    sp plz reply me soon on ashishlucky.iit@gmail.com
    thanks

  8. Nebros says:

    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? ^^

  9. Andrew says:

    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?

  10. Nancy says:

    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 ?

  11. Nancy says:

    sorry for the typo: although it’s in the driver list of c:\windows\system32\odbcad32.exe

  12. yashraj says:

    thanx my problem has soloved.

  13. 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!

  14. Marian says:

    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.

  15. […] Many thanks go John DaCosta for his helpful explanation on his blog! […]

  16. Manux says:

    Thanks , The problem is solved for hyperion interactive reporting

  17. Mendrys says:

    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.

  18. Mart says:

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

  19. Maciek says:

    Many thanks this fixed my issue

  20. Chuck says:

    Really great post. Was really puzzled by this one. Thank you.

  21. Vickyra says:

    Thank you so much, this fixed the issue I had with configuring my Oracle client after driver upgrade.

Leave a Reply

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

WordPress.com Logo

You are commenting using your WordPress.com 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

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: