Use 32-bit ODBC drivers with Invantive on-premise Products

Invantive on-premise products typically run Invantive SQL in 64-bit mode. However, some ODBC drivers such as for Multivers and Multivers Online are only available in 32-bit versions. This article explains how to use a 32-bit ODBC driver with Invantive on-premise products such as Invantive Data Hub.

A sample is given how to use such a setup can be used with the Multivers Online ODBC driver.

Alternatively, you can also use Invantive Web Service as a 32-bit IIS application as a virtualization layer. This is a more complex environment to set up initially, but scales more easily across a large installed base of Invantive products.

We recommend to consider Invantive Web Service when deploying to more than a dozen workstations/servers or when the warning below does not meet your business requirements.

Instructions

Invantive executable typically run on 64-bit windows in 64-bit mode. Exception to this rule is when Invantive software is run from within a 32-bit container such as typically Microsoft Office with Invantive Control for Excel.

The use of a 32-bit ODBC driver requires the use of Invantive executables running in 32-bit mode.

When using Microsoft Office in 32-bit mode (as most installations use) you can use a 32-bit ODBC driver without changes directly from Invantive SQL.

When running an Invantive executable directly from Windows, you will need to force the executable to run in 32-bit mode. Currently there is no supported software delivery for this goal.

Invantive support does not cover forced 32-bit execution of Invantive executables. Questions and issues are handled on basis of consulting.

The execution mode of 32-bit or 64-bit on an executable is determined by a header in the executable file. This header can be altered using corflags.exe, which is included with Microsoft Visual Studio and Microsoft SDKs. You might want to check out the Windows SDK for Windows 7 and .NET Framework 4.

Altering the executable removes the signature on the executable, hindering tamper detection. Please check with your local security officer whether that is an acceptable risk.

Execute the following steps:

  • Copy the installation folder with the executable to a new location, such as from “c:\program files (x86)\Invantive Software BV\Invantive Data Hub 17.32“ to “c:\program files (x86)\Invantive Software BV\Invantive Data Hub 17.32-32bit“:
    image
  • Change the header of the executable to force 32-bit mode using
corflags FULL-PATH-TO-EXECUTABLE\Invantive-NAME.exe /force /nologo /32bitreq+
"c:\program files (x86)\microsoft sdks\windows\v10.a\bin\netfx 4.7.2 tools\corflags" "c:\program files (x86)\invantive software bv\invantive data hub 17.32-32bit\Invantive.Producer.Queryengine.exe" /force /nologo /32bitreq+
  • Make sure that you are running the console with sufficient privileges such as Administrator when you receive an error:
CF001: Could not open file for writing
  • A returned warning “CF011 : The specified file is strong name signed.“ is acceptable.
  • Run the executable and enjoy use of the 32-bit ODBC driver.

When in doubt, you can check the mode using tools such as Process Hacker. The original Invantive Data Hub will have properties like:

The modified running Invantive Data Hub executable will have properties like:

Multivers Online

Once configured for execution as 32-bit process, the 32-bit ODBC driver of Multivers Online can be used with Invantive tools.

  • First configure the ODBC driver:

  • Create a settings*.xml file containing:
<?xml version="1.0" encoding="utf-16"?>
<settings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  VersionUpdateDate="2020-03-31T08:53:53.7191101Z" version="5" forcedefault="false" >
  <group name="Multivers">
    <connection
      name="UNIT4 Multivers Online - native">
      <database provider="Odbc" userLogonCodeMode="Hidden" passwordMode="Hidden"
        connectionString="Driver={UNIT4 Multivers Online ODBC Driver};SVCURL=https://koppelonline.unit4.nl;DATABASE=MVL99999;SVCUID=user;SVCPWD=secret;SHOWPROGRESS=N;ODBCPWD=odbc" 
        AllowConnectionStringRewrite="false" 
      />
    </connection>
  </group>
</settings>
  • Start the Query Tool.
  • Connect to Multivers Online.