Addsum web site and general info

Postings here will focus mainly on Advanced Accounting software updates, tips, and related topics. They will also include general comments relating to troubleshooting PC/Windows/network problems and may also include reference to our other software products and projects including any of our various utilities, or to the TAS Premier programming language. We considered setting up separate blogs for different topics so that users/others could subscribe to topics mostly aligned with their interests, but decided that it would be better to keep things simple since some topics cross over into others. We would nonetheless welcome your feedback/input in this regard. Our web site URL is Call us at 800-648-6258 or 801-277-9240. We also maintain so that older Business Tools users in particular have a greater chance to find us.


We highly recommend that accounting software users "follow" this blog via e-mail (enter your address and click on Submit below) or subscribe to a feed (see also below) as a way to keep current on the latest updates and accounting software news and information. You may also want to whitelist this e-mail address:

Friday, June 20, 2014

Pervasive/Btrieve status (error) code 20

Error code 20 is often experienced by end users. The cause depends in part on the Btrieve/Pervasive environment in which the software is running.

Btrieve 6.15 systems

In Btrieve 6.15 installations (which includes XP Pro, Windows 7, Windows 8 and corresponding server versions), a file open error such as one of the following may be encountered when first running a program.   Examples:

First ensure that the program can be run from the server/gateway PC (i.e. the PC on which the software is installed) when logged in as administrator.

If you do not receive this error code when logging in from the workstation as an administrator but you do get it when logged in from a different profile (but can “force” the program to work by manually first running Btrieve 6.15's microkernel engine w32mkde.exe), chances are that the user is a part of a standard or limited group on their local PC. The user will need to be placed into a power user/administrative group* on the local workstation to resolve.  Even if the user has full rights to the shared folder on the server, due to the legacy 32-bit nature of Btrieve 6.15 they must also have similar rights on their local PC.  One of the reasons for this is because Btrieve 6.15 places its registry entries under HKEY_LOCAL_MACHINE\Software.

*Power user or above was necessary with Win 2000 and XP Pro.  For Win 7 and above, users may have to be given local administrator privileges in addition to setting the icon properties to "run as administrator"  (see below) unless two default registry settings are changed:

In addition, absent being given administrator rights, on 32-bit PC's, the My Computer\HKEY_LOCAL_MACHINE\Software\Btrieve Technologies key should be made accessible to all users.  On 64-bit PC's, the key is instead located at HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Btrieve Technologies.

Wow6432Node on a Windows 7 64-bit PC

Right click on the Btrieve Technologies branch, choose "Permissions" and set  Users/Everyone to have full control.

With these settings changed to permitted local application data paths and appropriate rights granted to the Btrieve Technologies registry key, then even with Windows 7,8 and 10, users can be placed in a power user group rather than administrative group and still invoke the engine as was possible with XP Pro.  The Addsum Btrieve 6.15 Setup program allows an end user to establish these settings in a more flexible way.

It should be kept in mind that Btrieve 6.15 was never tested on XP much less on Win 7 nor Win 8, etc.  so it is in one sense amazing that it continues to work at all.   If this however poses an unacceptable security risk to put the user in a power user group with respect to local PC rights, then the alternative is to update to an appropriate version of the newer Pervasive engines, and then local user privileges can be restricted as desired.

In establishing the appropriate Btrieve 6.15 settings in the first place on each PC where the software will run, on Windows 7 and 8 and equivalent systems it is essential that the workstation configuration programs including the BTRSETUP.EXE are “run as administrator.” On these systems it may also be necessary to change the icon that launches the software be set to “run as administrator” when launching software that uses the Btrieve 6.15 engine (see below) unless some of the default microkernel registry entries have been changed as discussed above (and which can be managed with the Addsum Btrieve 6.15 Setup utility.

If the error 20 instead occurs during software operation and not in the context of opening a file, another reason for this error message in 6.15 installations relates to inadequate user "delete" rights such that the user is unable to delete 6.15 LCK files; if the LCK files can be moved and the error 20 goes away, this indicates a user rights issue.

In rare situations, users have received error 65516 which also appears to be linked to a certain Btrieve DLL's no longer being present (for example if the 6.15 wbtrv32.dll installed in the application folder in the case of Btrieve 6.15 installations was inadvertently deleted or removed by some process or is prevented from being loaded).

Terminal services (RDP/Remote services) environments and Btrieve 6.15

Status code 20's have been widely reported when attempting to remotely access Btrieve 6.15 data via RDP.   Typically the first user can be made to work, as long as the application is run with elevated administrator privileges to resolve initial status code 20 issues, but the second user will then commonly receive a status code 20 until the first user exits the application (and after the w32mkde.exe process unloads itself from memory a short time later).  While tweaks to the Terminal Services registry and/or to the Btrieve 6.15 registry keys have been reported to allow more than single user access, a newer database engine is needed in a remote access situation involving multiple users not only to avoid giving users full administrative access but also to provide faster and more robust file handling, as well as to better interface with modern backup approaches, and since newer "Btrieve" engines have been designed with RDP in mind.  Therefore, the best approach is to upgrade the "Btrieve" component to a newer version.

Pervasive systems

When running Pervasive database engine environments, the error 20 can be returned if the Pervasive workgroup or other engine is running and the Btrieve 6.15 components exist in the application folder where the executable software (e.g. tp7runtime.exe) is being invoked (or they exist in the Windows path, which we never install to, or some other path available to the user).

The Pervasive engine and the Btrieve 6.15 engine cannot be active at the same time. They can exist or available on the same system, but both engines cannot be run concurrently from the same desktop.

To resolve, either all PC's should first be running the same Pervasive engine and the REMOVE615.EXE (provided by us) should be run to remove the Btrieve 6.15 components from the application path if the intent is to use the engine with the Advanced Accounting or other TAS-based software. If the Pervasive was installed as part of some other software, then a solution would include uninstalling the Pervasive workgroup engine if is not going to continue to be used (if related to a demo install for example) or to stop the Pervasive engine  (how that is accomplished depends on the Pervasive version; newer versions usually run as a service) before trying to run the application using Btrieve 6.15.

Incorrect or mismatched DLL's may also be the case of an error 20 in Pervasive environments.