Jump to content
Henry Olive

Firebird 3 Client Installation

Recommended Posts

I wish you everyone a healthy and happy new year

 

I installed FB3 Server into the server machine and my own terminal pc,  both works well.

For other clients pc's  what should i do ? (In interbase i used to copy/paste  gds32.dll  into Windows\WOW64 directory)

In Firebird, there is fbclient.dll i got a copy from my own pc (which i installed FB server before) and copied this file

user terminal's C:\WINDOWS\SYSTEM32  folder but the user cant access the server so

i copied the fbclient.dll into C:\WINDOWS\SYSWOW64 but still the user cant access the server

I think there should more files to copy to terminal pc's 

What are the all files for client pc ? and which folder should i copy them ?

Thank you

 

 

 

Share this post


Link to post
Guest

fbclient.dll depends on msvcr100.dll and msvcp100.dll.

 

I put them in the app folder to avoid clashes (but the last couple of years the new fbclient should handle older fb servers properly).

Having the dlls locally will entail moving the msg file there too and setting a environment variable to point at it at runtime, if you need the fancy exception messages and not "cannot format message..." + error codes.

Things should work without the msg file it too.

 

HTH

Share this post


Link to post

Thank you so much Dany

You say you put them in the application folder, you mean i need to copy

fbclient.dll, msvcr100.dll and msvcp100.dll. ( Total 3 files) into the Server Machine My Application Folder ?

No need to copy any file into clients machine ? or you mean

I need to copy fbclient.dll into client machine's SYSTEM32 Folder and

I need also to copy msvcr100.dll and msvcp100.dll. into Server's my application folder ?

Edited by Henry Olive

Share this post


Link to post

Why don't you use firebird's installer ? You have an option to install only client.

 

Share this post


Link to post

Yes, official installer is the safest method for client-only install.

It is also well documented in the FB3 Quick Start Guide, chapter 3.5, and in /doc/ folder in the installation path (e.g. "c:\Program Files\Firebird\Firebird_3_0\doc")

For manual installation, copying fbclient.dll / gds32.dll + msvcp100.dll  + msvcr100.dll  +  firebird.msg works fine too.

 

I just want to add that there is also a handy community-mantained chocolatey.org package

- can silently install (and upgrade) server or client-only

choco install firebird /ClientOnly

(you need to install chocolatey first, of course).

 

Share this post


Link to post

If you place the dll files manually into the windows system folders, you'll need to run regsvr32 to register them in Windows. If you use the installer it will register them for you. If you place them in your programs root folder, there is no need for registration.

Share this post


Link to post

it is looks weird to have many firebirdbird files in your app folder.
then you can use enigma virtual box to put all firebirdsql files in your app.
i often do this and no problem found with my anti virus (AVG) so far.

Share this post


Link to post
6 hours ago, irawan said:

it is looks weird to have many firebirdbird files in your app folder.

Many = 3 in this case, I have no problem with it. When customer has a new computer, he can just start the application from network share, there is no need to install it. It is also much easier to update FB client, when you can replace its files in one place and do not have to make changes on all computers.

Share this post


Link to post

Why not just take fbclient.dll together with your app? I also use custom static build of client that doesn't require external MSVCR crap

Share this post


Link to post
Guest
1 minute ago, Fr0sT.Brutal said:

doesn't require external MSVCR crap

I though that: If the correct visual c runtime dlls does not exist on the target system you'll have to distribute them?

2 minutes ago, Fr0sT.Brutal said:

I also use custom static build of client that doesn't require external MSVCR crap

You mean your process emitts a dll from resource before connecting?

Share this post


Link to post
1 minute ago, Dany Marmur said:

You mean your process emitts a dll from resource before connecting?

Nope. I built FB client with "STATIC" argument so MSVCR is compiled into resulting DLL. Zero DLL mess, maximal happiness :). Million times I suggested authors to distribute static versions as well but they still insist that "updating VCR libs are important security requirement".

  • Like 2

Share this post


Link to post
Guest

@Fr0sT.Brutal, brilliant!

All the hazzles, all the NG posts, all the tools and add-ons and installation "quirks"....

I had no idea it was possible. My "nuevo" client have a "transport layer" and a "stateful" server, so the server needs the client lib making this magic a bit redundant. But anyways. Neat-o!

Share this post


Link to post

@Dany Marmur

you're welcome 🙂 this is possible for any opensource project written in C/C++.

I only did this because I hate too much DLLs in my app and to avoid additional dependencies but I could easily imagine how somebody suffers if he needs 2-3 3rd party libs that use different VCR version each.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×