Surface Pro (2017) vs Surface Pro 4
For several years now I've been distributing a program written and compiled using various versions of dBASE. Until recently I was on dB2K running under Windows 98SE, and my program would run under anything from Win 3.1 to 2000.
Now I've upgraded to Win XP and dBASE PLUS. My program runs okay and compiles okay, and appears to install okay on my customers' machines. But when they try to run it they get an error message "error loading idapi32.dll".
The strange thing is the idapi32.dll is a file associated with dB2K and, so far as I can see, is not part of dBASE PLUS or its runtime engine. Any ideas, please?
That's supposed to make non-XP sofware work properly with XP (or to make XP backwardly compatible?).
But the point is that dBASE PLUS and, hence, the programs I write using it, is supposed to be already XP compatible, and I don't want to have to tell all my customers that they have to fiddle with XP to make it work.
I'm sorry to say that I do not use dBASE in any form, so I cannot offer a 100% certain answer, but my experience with other database and programming applications leads me to a couple of possible solutions.
When compiling your program you obviously have to make certain that any required or referenced files are present. There are common issues, for example, of Common Dialog and FileDialog Controls in Access/VB applications where an incorrect version of COMDLG32.OCX on a clients PC can totally prevent a program from working as intended.
I'd guess that there is a reference either in your application or your system registry to the offending DLL from the previous version you have installed and that is the cause of your woes. Perhaps one of the function calls in the new version of dBASE goes looking for the DLL found in the old version. Stranger things have happened and the above COMDLG32.OCX example is very relevant as a comparison.
There are a lot of web entries for issues with the Borland Database Engine and the DLL you mention. I should think that you may have a similar issue, but unfortunately I cannot find any direct links to the problem concerning dBASE.
If possible you could try installing dBASE PLUS to a clean system with no prior versions installed. Don't simply uninstall the older versions; if you can, set up a test machine with only the latest version of dBASE and try to compile your program. Now move the program to another machine with any flavour of Windows on that takes you fancy for testing purposes.
Successful program launch means that there is an issue with the previous version of dBASE being installed alongside the newer release.
Workarounds could include installation to separate machines or if this is not practical perhaps you could partition your existing computers hard disk to allow for independent development environments, where one partition has dB2K while the other has dBASE PLUS.
I realise that this may not be ideal, but you may find that it is necessary. One final point; if you do try the above, it would be worth your time and effort to test a clean install of dBASE PLUS on Windows XP and on another version of the Windows platform. This will help eliminate Windows itself as a possible cause but I don't think that this should be necessary given the nature of the DLL in question and where it originates.
Yes, I've seen references to my problem on various sites, but they've all been related to the previous version of dBASE (dB2K), and their solutions (when I can understand them) don't relate to the current version, dBASE PLUS.
At the moment I've got a dual-boot system on my PC, with dB2K on c:\ drive with Windows 98SE, and dBASE PLUS on e:\ drive with Windows XP. I've been using a separate, completely clean (no dBASE or Borland programs on it), laptop to test the compiled, deployed, application since receiving complaints from customers that they couldn't run it.
Given that idapi32.dll is a dB2K file, and doesn't seem to figure anywhere in dBASE PLUS, your suggestion of a clean dBASE PLUS installation, without any dB2K, seems to be favourite. I'll give it a go, and report back.
Uninstalled and/or deleted all software with a Borland connection (Corel, and two previous versions of dBASE) which were all running under Windows 98SE. Then uninstalled and re-installed dBASE PLUS under Windows XP. Re-compiled my program, and made a new setup.exe file to deploy it. Setup.exe loads my application okay on a clean machine running Windows ME, but application still doesn't run -- same error message. (I don't have another clean machine running Windows XP, but my customers have reported the same error message when trying to load onto an XP machine.)
While experimenting, I found that dBASE PLUS itself (the full developers program, not just the bits that I deploy to make my application run) gives the same error message if I try to run it using Windows 98SE after having installed it using Windows XP. Is this a clue?
This is unusual to say the least.
It could well be that in getting the latest version for XP compatibilty tou have actually found an issue when distributing cross platform applications.
How big is the offending program you are compiling and are runtime files required to run it or are they included with the .EXE file you generate ?
In your last paragraph you say that the dBASE PLUS program itself is throwing out the error under Win 98 SE. This is the actual programming environemtn you are working in, not just the compiled executable ?
I'd be interested to see how a clean install of dBASE PLUS on Win 98/ME and then on WinXP performs, especially if the systems themselves were clean and had never had any dBASE PLUS or Borland DBE installs.
I'd suggest contacting the vendor of dBASE PLUS. I cannot find anything on their site regarding your error, but it's beginning to look like a problem with the program itself, or at least how it installs to different operating systems.
One final question; are the dBASE PLUS to Win9x and XP installs you have on one dual boot machine or are they seperate computers entirely - if they are on one machine, is it partitioned or two physically seperate disks and which file format is Windows XP using FAT or NTFS) ?
It's beginning to seem that way to me. I'm in touch with dBASE, but no meaningful response yet -- just the suggestion that I clean out Corel and anything else that uses Borland.
The .exe file I'm generating is only 3.0Mb, and that includes all the runtime files needed to run it (the equivalent in dB2K was about 10.0Mb, but dBASE have radically changed their runtime module in the latest version, which accounts for the size difference).
The error is thrown out by the actual dBASE programming environment; but that may be a bit of a red herring because that's only when I install the software under XP and then try to run it under 98 -- before I got XP I was running it under 98 okay because it was installed under 98. Under 98 it generated .exe files which could be installed and run on all Windows up to 2000. My problem started -- and I purchased XP -- when customers told me they couldn't run it under XP.
98 and XP are on two partitions of the same HDD. I've left all files as FAT, for interchangeability reasons.
A 10mb to 3mb compile is one heck of a runtime change !
I'm still wondering how things might be if you had dBASE PLUS on a clean Windows 98 or 2000 operating system with little or no other software present other than whatever is required by you to code and generate your program.
My ignorance of dBASE products is showing here, but in general when things go wrong with software I am a great believer in starting with a clean slate and adding more prgrams into the pot until you replicate the original fault.
Programming database applications has long been a mire of confusion when things go less than according to plan. I'd say you have managed to narrow things down slightly by confirming that your program runs fine on all versions of Windows up to 2000 from the old dBASE application on Win98.
From what you have said it sounds very much as though it is a Windows XP/dBASE PLUS conflict or you simply have some Borland junk floating around in there that you can't find but that is directly affecting your end output.
One more thing you might like to confirm. The latest version of dBASE PLUS that you are having problems with - have there been any significant changes in the underlying methods used in the environment that you may have overlooked ?
I only mention this as an adjunct based on certain other database programming environments and the fondness of their respective vendors for completely changing features with little or no warning. Along these lines, I nearly threw a fit when I 'upgraded' from VB5/Access 97 to VB6/Access 2000, then I had an almost equally large culture shock in store when I went up to Access 2002. Many of the fundamentals either did not work at all, were not even present or required entirely new methods to implement.
I'd be curious to see if your problems can be replicated if dBASE PLUS was installed onto a fresh installation of Windows XP. That would go a long way toward satisfying certain possible causes.
I'll have a bit of a think and see if I can come up with anything more positive than general software trouble shooting methods.
I know I keep banging on about the fresh install concept, but uninstalls are notoriously inefficient and registry entries, hidden files and folders and other junk are almost always left behind to haunt you.
Experience has shown in the past that a fresh operating system install followed by your applications, one at a time, until the fault is replicated or you get the functionality you want is sometimes the most reliable way to eliminate or prove points as you go.
Thanks for your input. I can't afford to strip my PC down any more (no Corel, no other Borland applications, and only one version of dBASE PLUS installed -- running under Windows 98SE), and my laptop isn't man enough to install XP on.
But the good news is that dBASE have replied and said they will call me if I give them a phone number. I'll let you know what the resolution is.
This thread is now locked and can not be replied to.