Copying the required dlls for the database client system dir

Forum related to Firebird

Moderators: gto, cipto_kh, EgonHugeist

Post Reply
rfwoolf
Fresh Boarder
Fresh Boarder
Posts: 14
Joined: 28.09.2008, 20:46

Copying the required dlls for the database client system dir

Post by rfwoolf »

In the installation instructions it says:
Copy the required dlls for your database client to the windows system directory (usually Windows\
System or winnt\system32) or use the database client installer.
and so I went to my Firebird install directory, and copied and pasted "fbclient.dll" into the WINDOWS\SYSTEM folder.
Only then did it work.

I now need to be able to do this for my the customer when I install the software.

Do you know if these dll files HAVE TO go into the system folder? Can't I tell ZEOSlib to look in the FireBird folder?
If I tell my install program to just put the dll into the "SYSTEM FOLDER" will this do the job? Or is there anything I need to look out for like in Vista etc?

Thanks :p
User avatar
mdaems
Zeos Project Manager
Zeos Project Manager
Posts: 2766
Joined: 20.09.2005, 15:28
Location: Brussels, Belgium
Contact:

Post by mdaems »

You can also put them in the same directory as your exe or add the directory containing the dll's to the PATH environment variable. Pointing Zeoslib to a dll isn't possible yet.

Mark
Image
fcodebue
Junior Boarder
Junior Boarder
Posts: 32
Joined: 05.04.2008, 16:02
Contact:

Post by fcodebue »

You can check default install dir with registry key

HKEY_LOCAL_MACHINE\SOFTWARE\Firebird Project\Firebird Server\Instances

into the string DefaultInstance you can find full path of firebird server installation.
However you can use command line tool

instclient i[nstall] [ -f[orce] ] fbclient.dll

to automatic copy it into system directory
Codebue Fabio
P-Soft - http://www.p-soft.biz
Firebird La Comunità Italiana - http://www.firebirdsql.it
GestionaleOpen - http://www.gestionaleopen.org
rfwoolf
Fresh Boarder
Fresh Boarder
Posts: 14
Joined: 28.09.2008, 20:46

Post by rfwoolf »

Okay so I can please confirm - if the DLL is inside the same directory as the EXE it will see it?
seawolf
Zeos Dev Team *
Zeos Dev Team *
Posts: 385
Joined: 04.06.2008, 19:50
Contact:

Post by seawolf »

Yes, if it is called fbclient.dll
rfwoolf
Fresh Boarder
Fresh Boarder
Posts: 14
Joined: 28.09.2008, 20:46

Post by rfwoolf »

Thank you :) I will still have to test this on a "virgin" machine. Thanks for the help as always :)
nostradumbass
Junior Boarder
Junior Boarder
Posts: 27
Joined: 22.05.2008, 23:54

Post by nostradumbass »

I would like to build upon this question with a question of my own:

If I want to give the user (application) the ability to choose between Firebird embedded or Firebird server ? Then which Dll file should I copy to the application folder ? The one that is distributed with the embedded (fbembed.dll, renamed to fbclient.dll) _or_ the one that is distributed with the Firebird server version (fbclient.dll) ?

Eg Sometimes the server is not available, so I want my application to connect to a local copy of the database. For this I would need to use the embedded Dll, correct?
seawolf
Zeos Dev Team *
Zeos Dev Team *
Posts: 385
Joined: 04.06.2008, 19:50
Contact:

Post by seawolf »

If you want to connect to Firebird server use fbclient.dll (in Firebird 2.1 is 440k located in Firebird\bin) and, on Zeos, set Zconnection.protocol to firebird-2.0

If you want to connect with Firebird embedded fbclientd.dll (in Firebird 2.1 is 2.6 Mb) and, on Zeos, set Zconnection.protocol to firebirdd-2.0

As you can understand, with fbclient you can only connect to the server, while fbclientd.dll can act as a server (in single user-mode).

If the connection is not aivalable you can use fbclient.dll, but you have to know where your database is located
nostradumbass
Junior Boarder
Junior Boarder
Posts: 27
Joined: 22.05.2008, 23:54

Post by nostradumbass »

>> If you want to connect with Firebird embedded fbclientd.dll

Is this is the fbembed.dll file which the developer should rename to fbclient.dll (2.6 MB)? There is no file fbclientd.dll to be found anywhere.

>> set Zconnection.protocol to firebirdd-2.0

I see !!! Is there documentation about this specific property setting somewhere?
User avatar
mdaems
Zeos Project Manager
Zeos Project Manager
Posts: 2766
Joined: 20.09.2005, 15:28
Location: Brussels, Belgium
Contact:

Post by mdaems »

nostradumbass wrote: Is this is the fbembed.dll file which the developer should rename to fbclient.dll (2.6 MB)? There is no file fbclientd.dll to be found anywhere.
rename it to fbclientd.dll that way you can use both protocols firebird and firebirdd in the same application. So you could even copy data from the embedded database to the remote database and back.

I don't know if the firebird embedded dll can also connect to a remote server as the mysql embedded server dll can? In that case you could think about adding only one dll to your application.

Mark
Image
nostradumbass
Junior Boarder
Junior Boarder
Posts: 27
Joined: 22.05.2008, 23:54

Post by nostradumbass »

Thanks.
seawolf
Zeos Dev Team *
Zeos Dev Team *
Posts: 385
Joined: 04.06.2008, 19:50
Contact:

Post by seawolf »

Yes, it can, but the problem is multi-user mode is disabled, so if someone is linked to that remote db, embedded dll returns an error
Post Reply