Call us! 512-349-0334 or (877) INDUSOFT

Maintaining Functionality between 32-Bit and 64-Bit ODBC Database Engines (Providers) and InduSoft Web Studio

The InduSoft Web Studio Windows Runtime is a 32-bit application, and is currently maintained this way due to compatibility needs across a wide range of operating systems and platforms, including embedded and tiny platforms running on Windows CE, Windows Embedded and similar platforms.

Difficulties sometimes arise when using 64-bit versions of Microsoft® (MS) Office ODBC components such as Excel and Access, among other types of databases available.  In order for InduSoft (a 32-bit application) to use a DSN (Data Source Name – a string or file containing a data structure or information defining a way to connect to a particular database – this is also sometimes called a “Connection String”) and provider (also called a database engine, or an ODBC driver)  for these Office components and other databases, the provider also needs to be 32-bit. This provider may not be installed when a 64-bit version of MS Office is installed on a particular machine, and creating a DSN or Connection String just using the ODBC 64-bit provider cannot be seen within InduSoft Web Studio or any other 32-bit application (such as Dream Report®, which uses DSN’s). If the DSN does appear to exist, it is possible that you will simply get a “Connection Error” when you try to test it or use it.

 

Description of Possible Issues:

Scenario 1) You are trying to create a connection to an MS Access database and the provider (engine, or ODBC driver) that you are looking for is not in the provider list, such as the Microsoft Office 12.0 Access Database Engine OLEDB Provider.

Scenario 2)  You moved a project that uses an MS Access database to a different machine and you can’t connect to the database, even though the database file is in the project folder, and you did not change the connection string in the project. [This also assumes that you are either using {GetAppPath()} or the correct hard-coded project path to the database file when shown in the “Connection String” dialog.]

Scenario 3) You are using a different ODBC database such as Oracle® or MySQL® and are experiencing similar issues as described above.

Scenario 4) You cannot find a DSN that you created in an application, after installation of 64-bit MS Office.

Discussion and Background of the Problem:

Databases are, in essence, data files that can be accessed, read, and written to or changed by some provider or engine designed to run on a specific operating system. That engine essentially provides some method of accessing the data on the file and communicating to the outside world, presumably through a common means, such as using  SQL statements for instance. Any given database provider or engine can’t be run on a different operating system other than the one it was designed for, which includes a 32-bit or a 64-bit version of the “same” operating system.

Each database engine that can access the associated database file(s) must be created and compiled independently to be able to be run and communicate on each operating system that the database manufacturer intends to support, such as MS Windows (specific versions), Linux, OS X, Android®, etc..  Putting aside the visual “interface” (e.g., SQL Server Management Console, the Microsoft “Access” application, or similar) for the moment, the provider, which is behind the scenes and running in the background on the operating system; that does actually open, read, access, and change a database file is, generally speaking, what is missing or is somehow inaccessible when there is a problem with database connectivity.

 ODBC Managers, 32-bit and 64-bit

In the Administration Tools of your operating system (for this example we’ll discuss the Windows 8.1 64-bit OS), is a 64-bit ODBC Manager that is located here:

{root windows folder}\system32\odbcad32.exe.

This program file name can easily be confused with the 32-bit ODBC Manager, which is exactly the same, but located in a different folder shown here:

{root windows folder}\syswow64\odbcad32.exe

Here they are running side-by-side, showing the installed providers on the machine available in each of them—notice that the lists are not identical:

32b1

When a DSN is configured (either by the ODBC managers or by some program using a database), it is segregated by platform as 32-bit or 64-bit or both 32/64-bit, depending on the provider (database engine) that is configured in it. Also notice that either manager can see both 32-bit and 64-bit DSNs, but can only create or edit DSNs for its native platform.

32b2

I Want to Install a Different Provider Other than the Ones that I see in the ODBC Manager.

You may or may not be successful initially attempting to install a new provider on any given machine, depending on what providers are currently installed, and what version of MS Office (if any) is installed on the machine.  Here are the MS Access redistributable providers for Version 10 that can be used to connect to an Access data file.

According to a discussion thread in the Microsoft forums, it may not be possible to successfully install a 32-bit and 64-bit version of any specific driver on the same machine without a lot of work, possibly making your particular runtime machine unique. This may be an issue if you are deploying InduSoft Web Studio applications on many machines, which could require a lot of manual reconfiguration to get the databases to work correctly, especially if you already installed a 64-bit version of MS Office on the machines; or are also using some 64-bit application to also connect to the database with a 64-bit database engine (provider). Being a 32-bit application, InduSoft Web Studio requires a 32-bit database provider in order to connect to that data file. Here is the discussion thread from the MS forum.

 

Resolution or Solution Suggestions

As can be seen, there are several possible solutions available to resolving database connectivity issues.  Troubleshooting database connectivity can be greatly facilitated with the use of the Output Window in the InduSoft Web Studio development environment, or by using the Remote LogWin (Remote Management Section of the “Home” Tab) by typing in the IP address of the machine that you need the messages from.  You can also start the Remote LogWin from a command line or from the Windows Explorer by double-clicking on the program. It is located in:

{x}:\Program Files (x86)\Wonderware InduSoft Web Studio v8.0\Bin\LogWinExt.exe

Select the “Database Messages” checkbox in the “Settings” and InduSoft will pass any database provider messages to the Output Window interface.

Occasionally, the best solution is just to use a provider that is already on the Runtime Machine by modifying your InduSoft project before running your project, by creating a new connection string to the database using the new chosen provider. Sometimes, it is better to download and install a specific provider because (for instance) it includes needed support for specific SQL functionality that you are using. The best resolution will be entirely dependent on the needs of your application and the machine that it will be running on.

32b3

 

Comments are closed.