1

Using Firebird 2, we had to deploy 3 files with our applications to be able to connect to remote firebird servers:

  • fbclient.dll
  • msvcr80.dll
  • Microsoft.VC80.CRT.manifest

The first file was retrieved from the "normal" Firebird installer, the other 2 files from the "embedded" installer.

Firebird 4 doesn't provide an embedded installer, and I don't find proper information what to deploy for clients.

Reading this: https://ib-aid.com/download/docs/fb4migrationguide.html#_installing_client looks like Firebird 3 has lower demands. Is that the case? I just need communication-encryption and longer passwords, so FB3 would also be fine. (BTW, following the guide didn't bring success, otherwise I would not ask).

Mark Rotteveel
  • 100,966
  • 191
  • 140
  • 197
ralfiii
  • 584
  • 4
  • 13
  • I just found the folder "WOW64" that is installed by the "normal" driver. It contains 3 DLLs. Copying these files into the program folder of the client seems to do the job. – ralfiii Oct 29 '21 at 13:17
  • Since Firebird 3.0, there is no **separate** Firebird embedded zipkit (there never was an installer for embedded, BTW, just a zip file), Embedded is now part of the normal installer or the zipkit). In any case, just `fbclient.dll` with the Microsoft Visual C 14.0 runtime should be sufficient. If this does not work for you, then please provide a [mre], environment (i.e. Windows version), and specific errors. – Mark Rotteveel Oct 29 '21 at 13:17
  • 1
    If taking the files from the WOW64 folder worked for you, then it means your application is 32-bit, and probably you tried with files from the 64-bit Firebird install (or zip) when it didn't work. The WOW64 directory is part of 64-bit Firebird and contains the 32-bit client library. – Mark Rotteveel Oct 29 '21 at 13:18
  • i think one still better copy messages files too, it is not that big, but having human-readable errors text would help in user support – Arioch 'The Oct 29 '21 at 20:33

1 Answers1

1

The minimum necessary files are listed in the document you link:

If we speak about installing Firebird client only, you need to have fbclient.dll file. Firebird 4.0 client requires Microsoft Runtime C++ 2017 with the same bitness as fbclient.dll. If Microsoft Runtime is not installed, you may just copy it’s two files, msvcp140.dll and vcruntime140.dll that are included in ZIP for Windows.

So the absolute minimum you need is fbclient.dll, and in some cases you may also need msvcp140.dll and vcruntime140.dll when those are not already installed on your system.

In addition, it is advisable to include firebird.msg for error messages, and for some use cases, adding the ICU files is advisable (if you use the functions of fbclient to render/parse WITH TIME ZONE types).

If you want wire compression, you'll also need zlib1.dll, and if you want to use Chacha wire encryption instead of the less secure ARC4, then you also need plugins/chacha.dll (the chacha.dll needs to be in a plugins folder relative to fbclient.dll).

All these libraries must be the same bitness as your application. As discussed in the comments, the problem seems to have been that you tried the 64-bit DLLs from a 64-bit Firebird installation, while your application was 32-bit.

If your application is 32-bit, then obtain the files from a 32-bit installation or zip kit, or look in the WOW64(*) folder of a 64-bit installation (from the installer, the 64-bit zip kit doesn't contain this directory). This WOW64 folder contains the 32-bit files fbclient.dll, msvcp140.dll and vcruntime140.dll (for the additional DLLs you need to use a 32-bit installer or zip kit).


* This follows the awkward Windows naming of 64-bit Windows having 64-bit files in %WINDIR%\System32, and 32-bit files in %WINDIR%\SysWOW64

Mark Rotteveel
  • 100,966
  • 191
  • 140
  • 197
  • To be precise plugins\chacha.dll is looked relative to firebird.conf if it is occasionally found anywhere nearby. That's why using of fbclient.dll directly from Firebird WOW64 subfolder will cause error unless the conf file is also there. – user13964273 Oct 30 '21 at 10:51
  • @user13964273 Using fbclient.dll without a firebird.conf does not result in an error. Maybe you mean something else (btw: have you consider changing your user name to something more easily identifiable than "user"?) – Mark Rotteveel Oct 30 '21 at 11:12
  • I meant that your sentence "the chacha.dll needs to be in a plugins folder relative to fbclient.dll" is not always correct. Plugins are loaded from "Firebird root directory". It is the directory where firebird.conf is found. If firebird.conf is not found, it is the directory where fbclient.dll is located. firebird.conf is looked for in fbclient.dll directory first and then one level up. In 64 bits server installation it is exactly where 64 bits plugins used to be (including chacha). Because of all this 32 bits fbclient.dll (from WOW64 subdir) used to load 64 bits plugins and get the error. – user13964273 Oct 30 '21 at 21:57
  • And no, I'm not going to change the nick. What's the use for identification...? – user13964273 Oct 30 '21 at 22:05
  • @user13964273 It makes it easier to see who you're talking to. – Mark Rotteveel Oct 31 '21 at 08:21
  • Thanks for the perfect answer. The problem obviously was that together with a 32bit application, the 64bit DLLs were used instead of the 32bit versions. – ralfiii Nov 02 '21 at 11:31