Question

I was recently looking into Firebird Embedded as a product that could replace SQLite in my project. The thing is, I would like to be able to use the same compilation of my application both on Windows and Linux, and unfortunately with SQLite it's not possible.

Still, I can't get Firebird running on Linux with Mono (haven't tried Windows yet).

Things I've done:

  1. Installed Firebird ADO.NET Provider from NuGet.
  2. Downloaded 32 bit embedded client for Windows libraries and extracted to my bin directory: fbembed.dll, firebird.cfg, firebird.msg, ib_util.dll, icudt30.dll, icuin30.dll, icuuc30.dll.
  3. Created the connection string with:

    string fbConnectionString = String.Format ("ServerType=1;User=SYSDBA;" + Password=masterkey;Dialect=3;Database={0};Charset=UTF8", _dbFile);
    FbConnection.CreateDatabase (fbConnectionString);
    
  4. Still, I get the error, that fbembed.dll is not found in the path.

What should I do?

Was it helpful?

Solution

The Firebird .NET provider is primarily developed for he Windows platform. The wire protocol implementation works with Mono and under Linux, so it can connect to a normal Firebird server.

The fbembed.dll library for Firebird Embedded is specific to Windows and cannot be loaded on linux. The .NET provider code does have support for Linux, but it looks like you need to specifically compile it for linux. I assume the NuGet package is the default version compiled with support for Windows and Embedded.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top