IT SOLUTIONS
Your full service technology partner! 
-Collapse +Expand
Coder
Search Coder Group:

Advanced
-Collapse +Expand Coder Study Test
PRESTWOODCERTIFIED
-Collapse +Expand Coder Store
PRESTWOODSTORE

Prestwood eMagazine

September Edition
Subscribe now! It's Free!
Enter your email:

   ► KBRole-Based T...Coding & OOBorland Data...   Print This     
  From the February 2016 Issue of Prestwood eMag
 
Coder Borland Database Engine:
Installing BDE using Merge Modules
 
Posted 12 years ago on 10/29/2008 and updated 7/24/2009
Take Away: The new and "approved" way to install the BDE is by way of mege modules. This is quite a bit different than the traditional ways of using a pre-made program, or incorporating BDE Cab files (from, say, your Delphi installation). Caveat: This is new news for me, and I don't claim to know or understand everything there is to know on this topic but I do have some helpful findings for you.

KB101469

Introduction:

The new and "approved" way to install the BDE is by way of mege modules.  This is quite a bit different than the traditional ways of using a pre-made program, or incorporating BDE Cab files (from, say, your Delphi installation).

Caveat: This is new news for me, and I don't claim to know or understand everything there is to know on this topic here are some useful tips.

BDE Merge Modules:

Borland/Code Gear/Embarcadero have released BDE "Merge Modules," to be used to install the BDE.  There are two "flavors" of the BDE Merge Module; Pro, and Enterprise.  They correspond to the version of Delphi or C++ Builder you have.

The files to install these merge modules are bdemm52pro.exe and bdemm52ent.exe. We'll put these on the I: drive at the office, under "Borland\BDE."

Merge Modules leverage the newer Microsoft MSI installer technology, and, supposedly, are the superior way to install things like the BDE.  Using them requires two things:

1: A little understanding of the BDE merge modules themselves, and

2: An "installer" that knows about Merge modules. 

We'll tackle these in order.

Installing the Merge Modules:

Before you use the BDE merge module, you need to install it.  This is what the distribution EXEs are for.  When run, they'll install the merge module in C:\Program Files\Borland\BDEMergeModulePro (or BDEMergeModuleEnt).

Why in Program Files?  Well, that's because, before deploying, you'll probably want to run a program, BDEMMCFG.EXE. This is one of the files installed by running the distro EXE.  This "configures" another file, BDE_PRO.MSM (or BDE_ENT.MSM).

It's the MSM file that's important to your distribution. 

The Install-Builder Program:

I used InstallShield Express (ISE), v4.0, Service Pack 1, as included in the Delphi 2006 distribution.  This is where things start to get interesting/frustrating.

According to InstallShield's Help, the BDE merge modules are included and ready to go. Well, they weren't - at least not in my copy of InstallShield.

I had to study ISE help to learn where to put new merge modules so ISE could find them and include them in your installation programs.

The location is C:\Program Files\InstallShield\Express\Modules\i386\BDE\Pro (and/or Ent).  What's absolutely needed in there is BDE_PRO.MSM - presumably after you've used BDEMMCFG to configure it.

I say "presumably" because ISE Help says that, when you include the BDE merge module in your installation project, the BDE Merge Module Wizard will  run.  I copied all the files in the BDE merge module's install folder to the ISE location mentioned above.  But when I added the BDE merge module to my project, no wizard ran.

So, just what does the configuration "wizard" do?  I'm not sure at all. 

BDEMMGFG is hardly a wizard.  It's a single form that lists a bunch of other database drivers (or, perhaps mege modules), some checked, some not.  Conspicuously absent are any Borland drivers!  You have to take it on faith that the BDE is going to be included.

I left the check list box (all the other drivers) alone for fear of messing something up on my client's system.

Specifying Aliases:

The other feature of this window is that it allows you to specify aliases.  I did that, but those aliases were not created when I finally ran my new installer.

How to Include the BDE Merge Module:

Just how do you include a merge module in an ISE project? 

Along the left edge of the ISE main window is a tree with a number of "steps."  When you get to Step 2, "Specify Application Data," you'll notice a node titled "Redistributables."  It's a list of merge modules that ISE knows about, each with a checkbox.  You check the "BDE Pro" entry.  This is the entry that wasn't present in my initial installation of ISE, and didn't become present until I'd copied the Borland merge module files, as described above.

Incidentally, ISE Help is  little unclear about exactly how to make a new merge module visible.  The BDE \Pro and \BDE\Ent folders mentioned above ware already present (but empty), and seemed to be where Help wants them, so they're what I used.

But ISE also has a feature that lets you inform it where to find merge modules.  It's a list of paths, much like Delphi's library search paths arrangement.  You'll find it, in ISE, under Tools | Options.  Time didn't permit me to experiment with that, but it may be that I should have simply added a path the the BDE merge module installation folder.

Incidentally, while running BDEMMCFG and adding the necessary aliases for my project, I didn't see a way to utilize ISE's predefined location variables - only a way to specify a hard-coded path for each alias needed.  Short on time, I went this route, then disabled the installing user's ability to choose an installation folder other than the one I intended.

Clearly, this isn't an ideal solution, and I'll be doing some more experimentation and research to learn the "right" way to configure the BDE merge module with aliases.

The remainder of your ISE project is mostly the usual stuff:  Specifying files, shortcuts, etc. But one things deserves prominent mention:

A Very Important Step:

When you get to "Build Your Release" (Step 7), you'll notice numerous properties to be set.  The most important is "Include MSI Engines."  You should probably never let this value be "None."  The other options are "9x Engine Only," "NT Engine Only," and "Both 9x and NT Engines."

It is important to incude the MSI Engine appropriate for your target audience.  Not all machines have the Windows MSI installer present, and one definitely needs to be for merge modules to work.

Another Caveat:

In testing my installation, I found that it did a dandy job of installing the BDE.  (In one test, I'd completely removed the BDE from my machine before running my install).  But! After uninstalling my application, I found a funny thing.  The BDE remained installed - which is a good thing, and what you'd expect.  But BDEADMIN.EXE got uninstalled!

Until I find the reason for this, and a solution, I think it'd be a good idea to have our clients copy BDEADMIN.EXE to a safe place, so it can be copied back into the BDE folder after uninstalling our programs.

Conclusion:

This was my first use of InstallShield Express in ages.  I'd tried it early in my Delphi career, didn't like it, and have ignored it in favor of other solutions for years.  ISE 4 is not your father's ISE!  It appears much matured, easier to use, preared to use merge modules, and presents a nicer experience for end users.

But I clearly still have much to learn about how best to use ISE when creating installs that must include the BDE.

Please jump in with suggestion, corrections, clarifiations, etc.  I'll revise this article as I learn more.

The new and "approved" way to install the BDE is by way of mege modules.  This is quite a bit different than the traditional ways of using a pre-made program, or incorporating BDE Cab files (from, say, your Delphi installation). Caveat: This is new news for me, and I don't claim to know or understand everything there is to know on this topic but I do have some helpful tips.


Comments

1 Comments.
Share a thought or comment...
First Comment
Comment 1 of 5

Will this work for 64-bit systems?

Posted 11 years ago

Comment 2 of 5

Dave,

Good question.  You might want to post it as such on our message boards to see if anybody can add more info.

We know the BDE works on 64-bit systems.  I don't know, yet, if the Merge Modules/ MSI techniques I explored will work there, however - at least not yet.

Posted 11 years ago

Comment 3 of 5

Dave,

Great inquiry. You should post it as such on our message sheets to check whether anyone can include more data.

We realize the BDE takes a shot at 64-piece frameworks. I don‘t have the foggiest idea, yet, in the event that the Merge Modules/MSI strategies I investigated will work there, notwithstanding - in any event not yet 

Printable Fax Cover Sheet
Fax Cover Sheet Basic

Fax Cover Sheet Personal

Fax Cover Sheet Professional 

Fax Cover Sheet Blank
Fax Cover Sheet Confidential 
Fax Cover Sheet Standard
Fax Cover Sheet Generic
Fax Cover Sheet PDF
Fax Cover Sheet Word
Fax Cover Sheet Google Docs

Posted 109 days ago

Comment 4 of 5

I agree with the point you made, wnted to as if this works in 32 bit as well as I‘m having 32 bit system.

Regards,
Bapubsk
Site.

Posted 102 days ago

Latest Comment
Comment 5 of 5

Get the best fare at Southwest Airlines Reservations at Dealflightticket. Grab the best deals on Southwest flight booking and enjoy great savings at Southwest Airlines deals!

Posted 24 days ago
 
Write a Comment...
...
Sign in...

If you are a member, Sign In. Or, you can Create a Free account now.


Anonymous Post (text-only, no HTML):

Enter your name and security key.

Your Name:
Security key = P1256A1
Enter key:
Article Contributed By Wes Peterson:

Wes Peterson is a Senior Programmer Analyst with Prestwood IT Solutions where he develops custom Windows software and custom websites using .Net and Delphi. When Wes is not coding for clients, he participates in this online community. Prior to his 10-year love-affair with Delphi, he worked with several other tools and databases. Currently he specializes in VS.Net using C# and VB.Net. To Wes, the .NET revolution is as exciting as the birth of Delphi.

Visit Profile

 KB Article #101469 Counter
22230
Since 10/29/2008
Sales Website: www.prestwood.com Or visit our legacy sales site: 
legacy.prestwood.com


©1995-2020 Prestwood IT Solutions.   [Security & Privacy]