Home » SQL Server

The specified DSN contains an architecture mismatch between the Driver and Application

I am running sqlserve 2005 on window7 64bit and when i tried to access the database through an app, I get the error below.

SQLException caught = [Microsoft][ODBC Driver Manager] The specified DSN contains an architecture mismatch between the Driver and Application


2 Answers Found


Answer 1

Should have asked in Data Access forum... You may get better answer there

>>The specified DSN contains an architecture  mismatch between the driver  and Application

If you use the 64-bit odbcad32.exe to configure or remove a DSN that connects to a 32-bit driver, for example, Driver do Microsoft Access (*.mdb), you will receive the following error message:

The specified DSN contains an architecture mismatch  between the Driver and Application

To resolve this error, use the 32-bit odbcad32.exe to configure or remove the DSN.
For more info

Answer 2

On the side note, what odbc interface you used to create connection

To manage a data source that connects to a 32-bit driver  under 64-bit platform, use c:\windows\sysWOW64\odbcad32.exe. To manage a data source that connects to a 64-bit driver, use c:\windows\system32\odbcad32.exe.

If you use the 64-bit odbcad32.exe to configure or remove a DSN that connects to a 32-bit driver, for example, Driver do Microsoft Access (*.mdb), you will receive the following error message:

The specified DSN contains an architecture  mismatch between the Driver and Application

To resolve this error, use the 32-bit odbcad32.exe to configure or remove the DSN.

A data source associates a particular ODBC driver with the data you want to access through that driver. For example, you might create a data source to use the ODBC dBASE driver to access one or more dBASE files found in a specific directory on your hard disk or a network drive. Using the ODBC Data Source Administrator, you can add, modify, and delete data sources, as described in the following table.



I am building a package programatically by loading an existing SSIS package (application.LoadPackage(...).  In the package that I am loading, I have set the project properties for Run64BitRunTime to false.  If I run this package by itself, it works just fine.  As the new package is building, the DataSource AcquireConnection method is called.  I then receive the error:  {"ERROR [IM014] [Microsoft][ODBC Driver Manager] The specified DSN contains an architecture mismatch between the Driver and Application"}.  What is the appropriate setting for the C# project that builds the package.  Thanks.
I've been trying to connect to a MS Access 2007 database through JDBC. My JDK is JDK 1.6u18 64-bit and OS is Windows 7 64-bit. But problem is I am unable to create a DSN using Windows\system32\odbcad32.exe because it doesn't show ODBC drivers for MS Access at all, it's only showing drivers for MS SQL Server.

When tried to click on Configure for "MS Access Database" (which is an already created DSN, I guess), it first shows error message : "The setup routines for the Microsoft Access Drivers (*.mdb, *.accdb) ODBC Driver could not be found. Please reinstall the driver." And then another message : "Errors found! The specified DSN contains an architecture mismatch between the Driver and Application."

After reading in forume.
The odbcad32.exe in Windows\SysWOW64 does let me create a DSN for MS Access, it shows the drivers installed properly. However, when tried to connect to that DSN through a Java program, I get the following exception :

java.sql.SQLException: [Microsoft][ODBC Driver Manager] The specified DSN contains
an architecture mismatch between the Driver and Application
            at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
            at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
            at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(Unknown Source)
            at sun.jdbc.odbc.JdbcOdbcConnection.initialize(Unknown Source)
            at sun.jdbc.odbc.JdbcOdbcDriver.connect(Unknown Source)
            at java.sql.DriverManager.getConnection(Unknown Source)
            at java.sql.DriverManager.getConnection(Unknown Source)
            at AccessTest.main(AccessTest.java:19)

What might be the problem and what do I have to do to get it working? My OS as well as JDK are 64-bit. Can't I connect to a Access 2007 database. Any help would be highly appreciated.


Ok - have been round the bit on this one.  First off:  I am aware of the different ODBCAD32.exe files in the different directories and have used both to successfully create and test DSN's.  My issue is once I get inside Access 2010 and try to establish the link.

Step 1 - I use the WOW64 (32 bit version) directory odbcad32.exe to create a pervasive 8.1 DSN to my database.  Tests correctly, works fine - but I can only see user dsn's from both 32 and 64.

Step 2 - go into Access 2010, attempt to connect to the DSN by linking a table to the machine data soruce.  The DSN - ambiguously named THISDNS_32 - when selected yields the error

ODBC --call failed [Microsoft][ODBC Driver Manager] The specified DNS contains an architecture mismatch between the Driver and the Application. 

I hit OK thinking I will just re-set up a new DSN using Access instead.

I go to create the new MACHINE data source and it yields

You are logged on with non-Administrative priveleges.  System dSN's could not be created or modified. 

Questions:  1.) My account is part of the Administrators group; however it is a domain account in the administrators group at the local machine level.  Thoughts on why it would say I am not logged in as an Administrator?

Clicking Ok and attempting to set up a USER DSN does not show the 32 bit Pervasive Client as I believe we are now using the Access-called 64 bit version of ODBCAD32.exe.


Any assistance would be greatly appreciated.


I need to establish a connection between an Access 2003 database (32 bit) and an 11g 64 bit Oracle database on a server. I am running Windows 7 on a 64 bit laptop. I did a clean install of Oracle 11g for 64 bit. I have no problem accessing the Oracle database via the Oracle SQL Developer. I just have a problem from within Access. I hope someone can help me. I've been fighting this for several months. Thanks in advance!

Hi everyone,

Today i read the application architecture guide for web application and it's a great resources, but i wanna know if there is an example application for this guide, or some application that follow this guide?

If there is not an example application, i will like to enjoy a project to create one.

Thanks a lot.



My question: How to set up the driver development environment and make own driver from a DDK/WDK sample for WES7?

I checked all the previous questions in this part of forum but failed to see such information. I made the windows driver for Windows 2K/Vista before. But I have no idea about driver development in Windows Embedded Standard 7.

For device driver in Windows 2K, I began from modification the DDK sample. Now I need to make a device driver for our own device in WES 7. I need to begin with a sample code, too. Which is the sample code for me, WDK 7600 samples in Windows 7 or Special WDK of WES 7 samples?


Many thanks




I want my application to be automaticly launched as Windows CE start. I success using the Regedit entry :

Here is what I've done :

1 - Put my executable in the release folder of my PB project (MyApplication.exe)

2 - Add the file to the Project.bib file :

; Name      Path                      Memory Type
; -------------- --------------------------------------------- -----------
Myapplication.exe $(_FLATRELEASEDIR)\MyApplication.exe   NK S

3 - Add my application in the Project.dat so that it could be map into a folder inside the Program File folder

root:-Directory("Program Files")
Directory("\Program Files"):-Directory("MySoftwareCompany")
Directory("\Program Files\MySoftwareCompany"):-File("MyApplication.exe","\windows\MyApplication.exe")

4 - Add the launching entry to the Project.reg file where (32, 00) is the explorer.exe executable id after which my application must be started.

"Launch99"="\\Program Files\\MySoftwareCompany\\MyApplication.exe"

Therefore, I thought it would be nicer to have a file/folder structure for my application. Something like

\\Program Files\\MySoftwareCompany
\\Program Files\\MySoftwareCompany\MyApplication.exe
\\Program Files\\MySoftwareCompany\MyApplication.ini
\\Program Files\\MySoftwareCompany\ConfigElement\Config1.ini
\\Program Files\\MySoftwareCompany\ConfigElement\Config2.ini
\\Program Files\\MySoftwareCompany\ConfigElement\Config3.ini

But I read on this site http://blogs.msdn.com/b/mikehall/archive/2005/03/23/401348.aspx that it is a wasted of RAM to create this kind of architecture.

Keep in mind that all ROM files exist in the \Windows\ folder
already, so copying EXE and DLL files to RAM-based folders in a
DAT file just wastes space. Instead, you should create a shortcut
file to reference the EXE in the windows folder

I think this is not practical having to put all the application files inside the Widows folder. I think it sound a little bit disorganized. Is there any way to organize architecture wihout having to waste ram space ?

Another thing, what is the advantages of putting my application as MODULE instead of FILE ?

PS : I'm using Microsoft Plateform Builder 5 
      The application is a kind of scada running 24/24 communicating whith automate modbus.

Thanks for your help
Best regards


Hi Guys

Thanks in advance.

We are creating a Web Application for a client in ASP.net with SQL Server. This is the first time we are doing this at a reasonably large scale.

1 - We plan to deploy a dedicated SQL server 2008 Workgroup edition for the customer. The customer however wants quick fail over (automatic or manual) in case of a database Failure. We were thinking of having another machine with a replicated database as standby for a failover. However we dont want to double up on licensing costs. What could be the best way to achieve this without having to pay for 2 Licenses of SQL Server ?

2 - Can we use Replication services on the Workgroup edition to replicate the primary database? I read somewhere about some limitations on replication in this edition.



I have a problem choosing architecture for my smart client application.

So far i have: Client: Winforms App (MVP for presentation, Service Layer,  and EF4 for data acccess)

On server side i have: Windows Service ( same Service Layer, and Data Acccess as on client with little addons), WCF for some service operations and Sync Framework for syncing DBs on top of WCF

My main problem is Model in MVP, I can't figure out how to organize my Client model.

So here is example problem i need to solve in my App, and my thought on how to implement this:

The problem: We have a list of Business Object in database and we need to display this data in n-views where 1st view contains full list, 2nd contains part of this list based on some criteria, 3d on some other criteria, etc... so we have for example 3 Tabs with DataGridView in each TabPage..

And of course  user can add,delete,edit, this Business Objects.

I can't decide how to keep all this synced and working...

We have basically 2 options for syncing this:

1) We maintain full database object graph in Memory. For example in BindingList<T> or some custom collection manager (Repository or whatever) (+only one object reference in memory = less memory needed, fast! no DB read operations)

2) We use some kind of event aggregate and update(reload) view based on this events

3)We can have global static EF object context, which will ensure that only 1 object reference exist (pretty same as 1 but with DB reads or with less db reads with EF wrapper Cache provider)

For me it's obvious that 1st variant is better. But what is this (inMemmoryDB) in terms of Domain Driver Design and MVP?

Is it some kind of MVP super Model which has no View?(User can close the view with full object list, but we still need this full list for other views). It's hybrid (Memory\DB) Repository?

So for example we decided to use this InMemoryObjectGraph, how we are going to Sync it with DB using EF4?

We need to control every DB write operation to apply this changes to MemoryModel, and it's not obvious how to make this with EF4 where this opportunity isn't provided.

So in my opinion i should write data access layer on my own using old plain Ado .NET DataReader. 

P.S. I have read:

Patterns of Enterprise Application Architecture (Martin Fowler)
Microsoft .NET: Architecting Applications for the Enterprise (Dino Esposito)
Applying Domain-Driven Design and Patterns: With Examples in C# and .NET (Jimmy Nilsson)

And i must say that: All the described patterns there are good but only when you write you Application from scratch (without using any 3d party Framework, and even with your own UI toolkit)...


I'm really interested by the VS 2010 capabilities to manage and model .NET applications.
So, I'm trying to create a simple solution with several projects and to create the associated layerdiagram. But I didn't find any information about the way to associate and validate the application structure when I build it.

I create some layer (to simplify, I create a layer for each project) and associate them with dependency relationships.
Next, I set the namespace of each layer with the namespace of the associated project and add the application project references to my model project.

Finally, I create a call between two of my application projects I hadn't specify in the diagram. But any error is launched. :/

I tried to launch validation by right click on the layer diagram and "validate architecture" or "generate dependencies" but without any result.

Could you explain me the technical differences between "validate architecture" and "generate dependencies" actions?
And how to validate my solution architecture with a diagram?
Do it exist any workshop or tutorial about that?

Thanks in advance for your help. :)

David Heinzer

ps : If you need, I can give you my solution in a zip file in a next post.
ps : I'm not sure to write my problem in the good Visual Studio section of the forum... But I don't find any section to talk about UML modeling capabilities of VS 2010. Don't hesitate to move my post if necessary.

I'm trying to incorporate WCF RIA Services in my current architecture, this architecture uses WCF Services (not RIA) to authenticate, ask for authorizations, write logs, and other functionality. 

The current architecture has 4 layers (in 4 assemblies), these are



App.Services.dll (Separates messaging technology from business logic)



I preffer not to change the architecture to include WCF RIA Services, so, what i want to know is, which is the best place for the DomainService class and for the DataModel.edf.

Do you suggest other architecture? I'd appreciate your ideas.


Thanks in advance.


My company wants me to make the same asp.net application and sql server database be sharable amongst different clients. Clients will use the database for their own business use, will have their own data, we will have our own data.

How can I share the same SQL Server database amongst different clients having same ASP.NET application (but somehow be able to differentiate which client user is logging in) ? Do I need to use ApplicationID and how will I detect at login which one to use ? I know I will need to add another field in all tables to differentiate client's data from ours.



This is for the MS SQL Server development team that handles the code for Full Text Search. Hopefully you will read this. I developed a web application that supports multilingual content. As is typical in the real world, many people often need to create their content in multiple languages or even have multiple languages present within the same content.

In my SQL Server database I have a single table that is used to store all the text from all languages. A single column is used to store this text. A separate column is used to identify the language of the content and uses Culture Codes like en-us, de-de, etc.. Furthermore, the format of the content could be plain text, html or whatever. Business logic at a higher level in my application code knows what the format is for each record because data is retrieved within the context of whatever a web page uses. For example, a user sending an e-mail would use plain text for the subject. For the body, html would be used. When these two pieces of information are stored in the same table, my code knows upon retrieving it what is text and what is html. It makes no sense storing a subject and body of an email in two separate tables. This is just a simple example but hopefully you get the point.

After going through the documentation on FTS, it became clear to me that my table design is completely incompatible with the FTS paradigm. FTS requires the content in a column to be of one language only. The content can also be of only one type and if not standard text, then must be in a column whose data type varbinary or image. If varbinary or image is used, another column is used to identify the document type. My table uses nvarchar for the content.

I really can't understand how the developers at Microsoft could have designed a text search engine that forces a developer into using a very rigid paradigm. Because my content can be html, the filtering component of FTS can't distinguish between what is content text and what are html tags and attributes. What on earth were you MS developers even thinking when you developed FTS?? You expected that developers would store each language of text in their own table or in a separate column?? You guys need to get away from theoretical software design and try building real apps. It seems that you're way out of touch with what's required for true international web apps that are scalable. It's no wonder why MS fell asleep at the wheel for search and Google left you in the dust. If you can't even get basic website search right, you need not wonder why Bing will always be far behind Google.

A FTS that would be better designed is where some options are available in queries that allow the user to specify one or more culture codes to limit the search to and specify a column where the Culture Code is stored. The document type should not be limited to varbinary. You should be able to specify a column for this and set the type on a row-to-row basis.

As it is, the FTS is quite useless in my application and I am forced to develop my own FTS. After nearly 2 decades of software development for the international community, I find it rather bizarre that Microsoft developers would make such a blunder like this in their FTS design.


We have a project to develop a web-based cruise line booking system distributable to an arbitrary number of clients and to develop an administrative application to control the licensing and access rights of each client created to use the cruise line booking system.

The application is required to be developed on Software as a Service (SAAS) model. To develop this, we are using .NET framework 4.0 platform, entity framework 4 with SQl server 2005 database as backend.

As this application is distributable to n number of clients and each one would access the same common business logic, so we have decided to keep the business logic hosted centrally which would connect to the database specific to a client.

I want to confirm whether it is a right approach to proceed by creating separate databases for each client, assuming that the number of client may exceed up to 100.

Please advise.





I have to design a dot net application which talks to Java and other language modules in both way then what things i should consider first and what different technologies i can use to design .net application.


Microsoft Application Architecture Guide mentions the (possible) recommended different layers in an application. The Business Layer has an optional Application Façade component. At the same you can have (also optionally) a Service Layer I don't understand the difference between these two (Application Façade in Business Layer and the Service Layer)?

Practically speaking if I want to expose my application to clients (eg pure html/JavaScript using Microsoft Ajax Client Library) via WCF Services should I crrate these services in a separate ServiceLayer Project or as part of the BusinessLayer Project?



Entity Framework 4.0, Linq To Sql, DataReader using enterprise library 5.0 all this are options for me to construct data layer.

I have gone thru lots threads on performance related issue about using ORM Mapper or Simple Data Access technique like ormbattle.net, http://toomanylayers.blogspot.com/2009/01/entity-framework-and-linq-to-sql.html.

I myself have done practically pros and cons of above, i decided to move with simple data access technique "DataReader" using enterprise library 5.0 as the Point of sale application (win forms 4.0) will run over POS Terminal where the main purpose is your transaction should be as much as possible fast to place more order.

As i have no use of any ORM features due to my most code will be from stored procedure i have taken this steps.

Please suggest is the simple data technique good for point of sale application to achieve better performance?




Hi everyone.
I am developing a database driven wcf service.

Sir I just want to confirm if you have to number of entities(like Products, Orders) in your database then how will you implement those entities operation(each have min 5) in your service (Like three tier architecture) you

1. Will you create different contract for different entities??
2. Will you implement those different contract in different classes??
3. Will they be hosted on different endpoints??

Please reply soon i am waiting 



I read an article in documentation:

When for example u want to use service applications you need to connect your service
applications to the WFE’s. This is done using a proxy (don’t think WCF/ASMX proxy… think of it
in the more generic term for now (as compared to 2007)).

I donnt exactly undestand this - so what is this proxy and what is communication Protocol between WFE and the application server?

Second question is if it is truth, then if there are two farms or more then could you search content through all of them using one Search Service Application? And would it be enough to have ONE search server in total and on the other farm there would be only some proxy to search sevice?


Hi Legends,

I want your valuable idea for my application architecture. Following is the requirement

1. Application should be web ( VS 2008 with Silverlight UI,  WCF,SQL Server 2008 and SDF ( for disconnected mode)

2. There is 2 types of users for this application, a part of user works in connected mode ( that means user contact directly to central server which is SQL Server 2008) , a part of user works in disconnnected mode ( local SDF).

3. Data in local SDF will sync to central DB when user connect to the network.

4. Rightnow we implement IIS in all user machine ( who are working in disconnected mode), because client need the application in silverlight.

Is there any better way to implement this silverlight UI with out IIS?


<< Previous      Next >>

Microsoft   |   Windows   |   Visual Studio   |   Sharepoint   |   Azure