www.destructor.de

About | Contact | Impressum


Home |  Code |  Articles |  Misc |  x
Firebird |  Talks |  Character Sets |  x
General |  1.0 |  1.5 |  2.0 |  2.1 |  2.5 |  3.0 |  x

Minimum Firebird Client Installation on Windows

This article describes how to run Firebird based applications on Windows with the absolute minimum client installation required.

What you need

Your application needs access to the Firebird client library, fbclient.dll. The easiest way to do this is to put fbclient.dll in the same directory as your application's .exe file. You will find the original fbclient.dll in the bin\ subdirectory of your Firebird installation.

The Firebird developers use Microsoft Visual Studio to compile Firebird on Windows and they chose to compile fbclient.dll so it requires the Visual Studio runtime DLLs. Depending on the Firebird version used, these runtime DLLs have different names. The runtime DLLs are delivered together with Firebird so you don't have to download them from Microsoft.

As Windows (and Microsoft Office) itself also uses these runtime DLLs, quite often the users already have the required runtime DLLs installed on their system. However, you can not rely on this so it's safer to just deliver the runtime DLLs together with the fbclient.dll.

Make sure you use the correct 32 bit or 64 bit version of fbclient.dll. When your application is a 32 bit application, you need the corresponding 32 bit fbclient.dll – even when your application runs on a 64 bit machine. You can find the fbclient.dll in the Zip release package of Firebird.

How your application directory looks like

That's it. Easy :-)

If you want to be 100 % correct, you should also copy IDPLicence.txt and IPLicence.txt to your client folder (especially when you deliver your application to customers).

Visual Studio Runtime Version numbers

Firebird Version Required Files
Firebird 1.5 msvcp60.dll
msvcrt.dll
Firebird 2.0 msvcp71.dll
msvcr71.dll
Firebird 2.1,
Firebird 2.5
Microsoft.VC80.CRT.manifest
msvcp80.dll
msvcr80.dll

These files are updated automatically by the Windows Update Service.  But only when they are "installed properly", which means they must be installed to the Windows Side-by-Side folder (usually Windows\WinSxS). The Firebird Windows Setup tool already does this. You can also  use the MS Visual Studio runtime installer (vccrt8_Win32.msi), which comes in the system32\ subdirectory of the Firebird Zip distributable. This one, however, requires MSI 3.0. So the whole stuff results in Yet Another Microsoft Installation Nightmare.

The easiest way to get these files is to download the Firebird Windows Zip Kit (e.g. Firebird-2.1.3.18185-0_Win32.zip), you will find them there in the bin\ subdirectory.

What you have to write to the Registry

Nothing. There's really nothing you'll have to do to the Registry on the client computer.

What you have to do to the Windows\System directory

Nothing. There's really nothing you'll have to write to Window's system directories.

Does that mean I can run my app from a shared network drive?

Yes!

You can put your application (.exe, fbclient.dll and MS runtimes) to a shared folder somewhere on the network. People just start your application and can directly connect to a Firebird database, without the need to install or configure anything on their local computer. No Registry settings, no Alias configuration. Just start the application. Isn't that great?

What you have to do to your code (Delphi, IbObjects)

A "normal" InterBase access library uses gds32.dll as the client library. Firebird's client library is named fbclient.dll. When you use IbObjects (www.ibobjects.com), you can set another client library name.

What you have to do to your code (Delphi, IBDAC)

Set the ClientLibrary property of your TIbcConnection instance to the name of the fbclient.dll library before opening the database:
MyConnection.ClientLibrary := 'fbclient.dll';

Where will my program search for fbclient.dll?

You can specify the complete path and filename for fbclient.dll. When you just specify fbclient.dll without a path, the Windows Dynamic-Link Library Search Order will apply.


Stefan Heymann, 2004-04-11
Last revision 2013-01-20

This documentation is licensed under (choose your favorite): GPL, LGPL, CC, IDPL, GFDL, BSD, (did I forget one?)