I'm trying to use .NET Firebird Provider to connect to the embedded FB 3.0.1 server.
As far as I know, (also written here (page 6)), there is no more fbclient.dll\fbembed.dll but a single client fbclient.dll used for remote and embedded access.
But when I call the FBConnection.Open() I get a System.DllNotFoundException:
Unable to load DLL 'fbembed':
Impossible to find the specified module (Exception from HRESULT: 0x8007007E).
Any ideas?
Connecting to a Firebird database requires the user to authenticate using a user name and a valid password. Any user other than SYSDBA, root (on Posix systems), or Administrator (on Windows systems, if Firebird runs as this user) needs also to have permissions to objects inside a database.
The root directory of the embedded server is the one where the embedded library binary (fbembed. dll, usually renamed to fbclient.
If the Superserver is not running, or the Classic server is not initialized, it can be started or restarted manually by selecting it from the Start ➤Programs ➤Firebird menu. Alternatively, the Guardian or the server can be started from the command prompt.
Looking in the Provider code the default Client Library is fbembed (maybe for compatibility):
internal const string DefaultValueClientLibrary = "fbembed";
Now, passing the new value to the ConnectionString do the trick:
var connectionString = new FbConnectionStringBuilder
{
Database = dbPath,
ServerType = FbServerType.Embedded,
UserID = "SYSDBA",
Password = "masterkey",
ClientLibrary = "fbclient.dll"
}.ToString();
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With