Solved

Borland Database Engine (Error $2108)

Posted on 2002-03-28
9
58,800 Views
Last Modified: 2009-10-19
In my Delphi 3 application, I have TDBGrid, TDatabase and TDataSource components.  When I compile the project to an EXE, and then give the EXE to a friend to use on their own PC, they get the following error when they launch the program:

An error occured while attempting to initialize the Borland Database Engine (Error $2108)

I realize that the problem is that the BDE engine is not installed on my friend's PC.  That's not really a big problem, since the table/database is not the main focus of the program, and only serves a minor function.  He won't miss much if the table is not available.

However, it is a bit annoying for him that this error appears every time he launches the program.

My question...  How can I prevent (exception trap) this error message so that the error message does not appear?  And 'no', I don't want an Expert to reply, "Install the BDE engine!"

Assuming I don't install the BDE engine for my friend, how can I prevent the error from appearing?  Is there any way to keep the error from appearing withOUT installing BDE on his PC?

If so, how?

Thanks.
0
Comment
Question by:Kapusta
9 Comments
 
LVL 1

Expert Comment

by:Alone
ID: 6904493
There are three ways to install BDE:
  - using Delphi disk
  - making own install pack
  - from command line ;-)

I thing third way is simplest. Try to extract bdeinst.dll from bdeinst.cab in your BDE directory by typing following command:

  extract <YourDrive:\YourPath>bdeinst.cab bdeinst.dll

If your friend has Windows NT (2000, XP) use expand command instead of extract.

After extracting, start BDE installation:

  regsvr32 bdeinst.dll

and follow the screen instructions.

This BDE redistributable pack install only local drivers. If you are using SQL links you must install required drivers manually or use other way to install BDE
0
 
LVL 27

Expert Comment

by:kretzschmar
ID: 6904623
?
i've a car, there is no engine in,
how to get the car drive without installing the engine?

its not really the main problem,
because i want only to hear the sound.

(just impossible)

you've to install the bde

meikl ;-)
0
 

Author Comment

by:Kapusta
ID: 6904944
>> And 'no', I don't want an Expert to reply, "Install the BDE engine!"  <<

I don't know how much clearer I could have made it...
0
 
LVL 1

Expert Comment

by:JDN
ID: 6905627
Kapusta,

Your program can of course run on a pc without the BDE installed, but only if no database component will be accessed or initialized.
You can trap any BDE error with a TRY...EXCEPT, but you need to know exactly where the error is raised. Therefore the best thing you can do is to launch the program yourself in your compiler, but without BDE. You can temporary rename the \Program Files\Common Files\Borland Shared\BDE folder (assuming your BDE is installed there). Now you can simulate and locate the error your friend is seeing when the program is lauched, and program some traps there.

Hope this will help.
JDN
0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 
LVL 44

Expert Comment

by:CrazyOne
ID: 6906085
Does not seem to be any need for the TDBGrid, TDatabase and TDataSource components if you are not going to install the BDE. Why not just remove the components.

Chances are the TDatabase component is generating the error.


The Crazy One
0
 

Author Comment

by:Kapusta
ID: 6906119
>> Does not seem to be any need for the TDBGrid, TDatabase and TDataSource components if you are not going
to install the BDE. <<

I never said that there was no need for the components.  My friend is not the only one running the app.  I am using the app on my PC, which has the BDE.  I use the table.  My friend has no need for the table.  I have no desire to write 2 versions of the program.  Therefore all I want to do is suppress the error message for those users with BDE installed.
0
 

Author Comment

by:Kapusta
ID: 6906122
>> for those users with BDE installed. <<

Typo correction:

for those users withOUT BDE installed.
0
 

Author Comment

by:Kapusta
ID: 6906141
>> You can trap any BDE error with a TRY...EXCEPT, but you need to know exactly where the error is raised.
Therefore the best thing you can do is to launch the program yourself in your compiler, but without
BDE. You can temporary rename the \Program Files\Common Files\Borland Shared\BDE folder <<


I have renamed the BDE folder as per your suggestion.  I then ran the code in the IDE.  The error occurs on the Table1.Open line.  Adding Try/Except, however, does not suppress the error window.  When compiled to EXE, the same error message window appears.

Here's the current code...

     Database1.Open;
     try
          Table1.Open;
     except
          // BDE engine not installed
                // Error window appears
     end;
0
 
LVL 44

Accepted Solution

by:
CrazyOne earned 50 total points
ID: 6906185
Ok then look for this registry setting

HKEY_LOCAL_MACHINE\SOFTWARE\Borland\Database Engine

DLLPATH

If the key doesn't exist then the BDE is not insatalled. If the Key does exist then check that the path exits that the above key is pointing to. Then see if the file idapi32.dll exists. If a false is returned on any one of these checks then in your code set it up to not use the components in question. In other words don't open the table or call on the TDatabase or TDBGrid component.
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Objective: - This article will help user in how to convert their numeric value become words. How to use 1. You can copy this code in your Unit as function 2. than you can perform your function by type this code The Code   (CODE) The Im…
Introduction Raise your hands if you were as upset with FireMonkey as I was when I discovered that there was no TListview.  I use TListView in almost all of my applications I've written, and I was not going to compromise by resorting to TStringGrid…
Migrating to Microsoft Office 365 is becoming increasingly popular for organizations both large and small. If you have made the leap to Microsoft’s cloud platform, you know that you will need to create a corporate email signature for your Office 365…
Sending a Secure fax is easy with eFax Corporate (http://www.enterprise.efax.com). First, just open a new email message. In the To field, type your recipient's fax number @efaxsend.com. You can even send a secure international fax — just include t…

863 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

23 Experts available now in Live!

Get 1:1 Help Now