1
votes

I am trying to install BDE Engine by executing the following command line from my installation program as follows.

ShellExecute(0, nil, 'regsvr32.exe', 'BdeInst.dll', nil, SW_SHOW);

It pops up with a message requesting permission to install BDE Engine at a particular location. When you click okay button, it pops up another a message as follows.

enter image description here

I did verify that I have plenty of free space in my hardrive. When you click on Yes button, it installs the BDE engine successfully.

I don't know why. Plus, there is not much information online about this.

Any input will be greatly appreciated.

3
How much space (MB) do you believe you have on the hard drive - available? What version of Windows are you running (if you're running Windows).Patrick Moloney
@PatrickMoloney Like I have over 80GB. The Installation program is being developed under Windows 7 and tested the installation on Windows 8, Windows 7 and even on XP. They all raises the same error.ThN
The problem is that the bde installer uses GetDiskFreeSpace, and not GetDiskFreeSpaceEx - support.microsoft.com/kb/202455Petesh

3 Answers

2
votes

The BDE is an old piece of software that has now been deprecated for a few years. While people do still have it running, I believe it was originally 16bit software and may never have been changed. I have a feeling the message is coming from some piece of software that can not understand your large hard drive. I don't recall if BDEInst.dll is the BDE installer from Borland, but the message may be coming from that. You also mention an "Installation program is being developed ...".

It should install to XP, and I would get it working there first. Win 7 and 8 introduce more issues. However, if at all possible, reconsider if you want to install BDE at this point in time.

2
votes

First of all, the BDE is deprecated, and you should better avoid using it, even with other versions of Delphi.

You have third party components around able to connect directly to DBs without using the BDE. See e.g. DevArt, SQLDirect, DASoft (its FreeDAC is free), and a lot of other components like Zeos or our SynDB Open Source libraries.

You reached the well known "2GB rounding error". The BDE installer suffers from it, but applications using BDE also.

BDE installer is buggy.

It just does not work with newer versions of Windows.

You have other installers around, like interbase and BDE on windows 7 or Bde Installer on these Embarcadero days

BDE used in applications will suffer from the same 2GB limitation, linked to the GetDiskFreeSpace improper use.

There is a work around available on Embarcadero CodeCentral which is worth to be included in your application code.

1
votes

The bdeinst.dll uses the Win32 API function GetDiskFreeSpace, which can report a completely misleading value when executed against a drive that is larger than 2GB - see http://support.microsoft.com/kb/202455 for a developer-based workaround.

The reason I know this is because I've been hit by it before and examined the imports for the bdeinst.dll binary which indicates that it uses GetDiskFreeSpaceA (this is the ascii version of function).

If you have to use the BDE, then you just have to accept that you may see this error when you attempt to install the app