Wrong Version Of Btrieve Installed

Symptoms

When starting an application, it complains that Pervasive.SQL Version XX is not installed or that an old/incorrect version of Pervasive.SQL is installed.

Cause

Out of the box, the Mertech copy of the Btrieve dll reports itself as version 7.94 as seen in Function Executor:

Some applications look at the Btrieve Version number to verify the correct API support is provided and will refuse to run if the correct version is not found.

Resolution

The version number returned by the Mertech driver can be configured differently for each application – using the process name. For instance, Function Executor is “wbexec32.exe”. A registry key is added:

For 32-bit platforms:

HKEY_LOCAL_MACHINE\SOFTWARE\Mertech Data Systems\DB Drivers\BTR\SQL Server Driver\v4\BtrieveVersion

or

HKEY_LOCAL_MACHINE\SOFTWARE\Mertech Data Systems\DB Drivers\BTR\Oracle Driver\v4\BtrieveVersion

For 64-bit platforms:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Mertech Data Systems\DB Drivers\BTR\SQL Server Driver\v4\BtrieveVersion

or

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Mertech Data Systems\DB Drivers\BTR\Oracle Driver\v4\BtrieveVersion

In the key, create a new String value – naming it with the executable name of the application. The value for the string entry is the desired version number:

Now, when the application makes a B_VERSION call, this version will be returned:

Leave a Reply