The rule only applies to the SQL client and ODBC driver; it does not apply for the ODBC driver and the OpenEdge database. From an OpenEdge database perspective, the architecture of the ODBC driver is irrelevant. A 64-bit ODBC driver can connect to a 32-bit OpenEdge database; a 32-bit ODBC driver can connect to a 64-bit OpenEdge database.
Stack from IIS generated when trying to access an ASP.NET Web Application from 64-bit Internet Information Services (IIS) using a 32-bit ODBC driver:
Stack Trace: [OdbcException (0x80131937): ERROR [IM014] [Microsoft][ODBC Driver Manager] The specified DSN contains an architecture mismatch between the Driver and Application] System.Data.Odbc.OdbcConnection.HandleError(OdbcHandle hrHandle, RetCode retcode) +1358681 System.Data.Odbc.OdbcConnectionOpen..ctor(OdbcConnection outerConnection, OdbcConnectionString connectionOptions) +73 System.Data.Odbc.OdbcConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject) +78 System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup, DbConnectionOptions userOptions) +57 System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) +1160 System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) +314 System.Data.ProviderBase.DbConnectionInternal.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +26 System.Data.Odbc.OdbcConnection.Open() +52 System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +173 System.Data.Common.DbDataAdapter.Fill(DataTable[] dataTables, Int32 startRecord, Int32 maxRecords, IDbCommand command, CommandBehavior behavior) +453 System.Data.Common.DbDataAdapter.Fill(DataTable dataTable) +141 djst1.FPSTableAdapters.FpwVSTHdr_ProgIdTableAdapter.GetData(String ProgId) +243 djst1.DataLayer.LoadTemplates(String TemplateName) +71 djst1.LogicLayer.InitalizePage() +70 djst1.CST.Page_Load(Object sender, EventArgs e) +469 System.Web.UI.Control.OnLoad(EventArgs e) +103 System.Web.UI.Control.LoadRecursive() +68 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3811 |