32 Bit Database Connectivity on a 64 Bit OS

As I've begun migrating to 64 bit Operating Systems, one thing that catches me off guard the most is setting up and using the proper ODBC drivers and OLEDB providers.  The key to getting the right one configured is to remember that if you are using a 32 bit application you want to use the 32 bit version of the ODBC driver and 32 bit version of the OLEDB provider.  If you are using a 64 bit application than you want to use a 64 bit versions of these drivers and providers.

All the versions of MicroStation and ProjectWise up to and including V8i are 32 bit applications.  So when configuring your data sources, you need to be sure that you are using the 32 bit versions of the ODBC and OLEDB drivers.  Since these are 32 bit applications they will only see ODBC connections created on the 32 bit side of the operating system.  To setup DSN for 32 bit applications you must use the 32 bit ODBC Data Source Administrator tool.  On a 64 bit OS this tool can be found at:

 C:\Windows\SysWOW64\odbcad32.exe 

(Yes it is confusing but, SysWOW64 is where the 32 bit version exists.)

If you truly have a 64 bit application that requires an ODBC connection, the ODBC Data Source Administrator tool under Control Panel -> Administrative Tools -> Data Sources (ODBC) will be the one to use.  This tool can also be found at:

 C:\Windows\System32\odbcad32.exe

So now you are using the correct ODBC Admin tool, but wait, you are trying to talk to an Oracle Database.  When you installed your Oracle Client you installed the 64 bit Oracle client.  And why not?  You are running on a 64 bit Operating System.  This is correct except by installing the Oracle 64 bit client you have not installed the Oracle 32 bit version of the ODBC Driver.  So when you go into the 32 bit ODBC Data Source Administrator tool the Oracle Driver does not appear in the listing.

To resolve the problem install the Oracle 32 bit client.  This is even more critical for MicroStation since MicroStation depends on and links to the 32 bit versions of the Oracle Client DLLs for the Oracle native connection.

So what about OLEDB? 

OLEDB is very similar in that there is a 32 bit version and a 64 bit version of the providers.  The easiest way to configure and OLEDB data source is to create an .UDL file on the operating system.  By double clicking on the .UDL file you will see the OLEDB providers for the 64 bit side of the operating system presented in the Data Link Properties dialog.  To get to the 32 bit version of the OLEDB providers you need to execute the following command line from a command shell.

C:\Windows\syswow64\rundll32.exe "C:\Program Files (x86)\Common Files\System\Ole DB\oledb32.dll",OpenDSLFile C:\test.udl

This command line will use the 32 bit version of rundll32.exe as well as calling the 32 bit version of the oledb32.dll.  C:\test.udl is the name of the .UDL file to be processed.  Even with OLEDB you still need to be conscious of installing a 32 bit version of the Oracle .Net Data Provider and the 32 bit version of the Oracle Client.

64 bit Operating Systems offer significant benefits in performance and memory management.  However when using these systems it is important to be aware of whether or not the application you are running is a 64 bit application.

  • Many thanks for this useful information. I was struggling to create a DSN for a 64 bit oracle to connect from a 32 bit oracle client. Information provided by you is very clear and crisp and solved my issue in minutes. Once again thank you very much.

  • Dear Sir,

    I am Facing an Issue in the above topic.. Can u pleases help me..?

    I followed all the steps what u mentioned above, but at last when I tried to execute the statement

    C:\Windows\syswow64\rundll32.exe "C:\Program Files (x86)\Common Files\System\Ole DB\oledb32.dll",OpenDSLFile C:\test.udl I am getting an Error

    Error in C:\program Files(x86)\Common Files\System\OleDB\Oledb32.dll

    Missing entry:OpenDSLFile.

    Please help me to solve this issue.. Yjanks In Advance

  • Hi Allen - We have found (so far), on our Server 2008 (64 bit) servers, that we have to have the ODBC in the 64-bit ODBC Admin or PW Admin doesn't see the datasource in the 32-bit admin.  In other words, if the ODBC is only in the 32-bit, then PW doesn't see it.  But if we add it to the 64-bit as well, then PW Admin sees it.

    thanks,

    Kirk