Как подключить и использовать встроенный сервер Firebird db с Visual C # 2010

Я пытался использовать встроенный сервер Firebird с Microsoft Visual C # 2010. Вот что я делал до сих пор:

  1. Загружен поставщик данных Firebird .Net (Firebird Client v2.5.2).

  2. Скачан встроенный сервер Firebird (Встроенный сервер Firebird v2.5.0).

  3. В мой проект добавлена ​​ссылка на FirebirdSql.Data.FirebirdClient.dll.

  4. Извлечен и скопирован файл fbembed.dll в каталог моего приложения.

  5. Добавил мой файл FDB "TEST.FDB" в каталог моего приложения.

  6. Добавлен оператор «using FirebirdSql.Data.FirebirdClient;».

Пока все хорошо (я полагаю) ...

Теперь, когда я пытаюсь подключиться к своему файлу FDB, используя следующий код:

    FbConnection con = new FbConnection("User=SYSDBA;" + "Password=masterkey;" + "Database=TEST.FDB;" + "DataSource=127.0.0.1;" + "Port=3050;" + "Dialect=3;" + "Charset=UTF8;");
    try  {
             con.Open();
         }
    catch (Exception ex) 
         {
            MessageBox.Show(ex.ToString());
         }

Я всегда получаю сообщение, что означает, что код не подключается к моему файлу БД должным образом. Я делаю что-то неправильно? Я действительно все еще новичок в C #, и я не знаю, как это сделать или исправить, и я надеюсь, что кто-то поможет мне в этом.

Благодарность :)

РЕДАКТИРОВАТЬ: вот что я получаю в исключении:

FirebirdSql.Data.FirebirdClient.FbException (0x80004005): невозможно выполнить сетевой запрос к хосту «127.0.0.1». ---> Невозможно выполнить сетевой запрос к хосту «127.0.0.1». в FirebirdSql.Data.FirebirdClient.FbConnectionInternal.Connect () в FirebirdSql.Data.FirebirdClient.FbConnectionPool.Create () в FirebirdSql.Data.FirebirdClient.FbConnectionPool.CheckOirdClient. .Form1.button1_Click (отправитель объекта, EventArgs e) в C: \ Documents and Settings \ ermac \ My Documents \ Visual Studio 2010 \ Projects \ fbTestApp \ fbTestApp \ Form1.cs: строка 25


person SolidSnake    schedule 25.10.2010    source источник
comment
Firebird запущен в то время, когда вы получаете исключение?   -  person Pieter van Ginkel    schedule 25.10.2010
comment
Встроенный сервер nope..firebird запускается только тогда, когда я нажимаю определенную кнопку.   -  person SolidSnake    schedule 25.10.2010


Ответы (4)


Наконец-то я нашел решение после 6 часов работы :)

большинство ответов в Google либо неправильные, либо очень старые. все они говорят, что мне нужно только включить файл fbembed.dll в мой проект ..

после некоторых исследований, которые я провел. Я обнаружил, что мне также нужно добавить firebird.msg, firebird.conf, icudt30.dll, icuin30.dll, icuuc30.dll и ib_util.dll в мой проект и в выходную папку ..

важное замечание: никогда не используйте компактный поставщик данных .Net. потому что они сделали это только для серверов Normal и super firebird. он не будет работать со встроенными серверами.

person SolidSnake    schedule 25.10.2010

Со встроенным Firebird 2.5 я копирую все эти файлы в каталог приложения:

aliases.conf (optional)
fbembed.dll
firebird.conf
firebird.msg
ib_util.dll
icudt30.dll
icuin30.dll
icuuc30.dll
Microsoft.VC80.CRT.manifest  : -- Not sure if this 3 files are necessary
msvcp80.dll                  : -- but i copy them :)
msvcr80.dll                  : -- see http://www.firebirdnews.org/?p=2248
intl\fbintl.conf   : Without those files you can't use
intl\fbintl.dll    : all charset and collations
udf\*  : if you want to use pre-build UDF

В строке подключения я указываю, что сервер встроен с serverType = 1:

User=SYSDBA;Password=masterkey;Database=E:\TEST.FDB;Dialect=3;Charset=UTF8;ServerType=1;

Еще я забыл IDPLicense.txt и IPLicense.txt, думаю, надо их тоже раздавать вместе с заявкой на выдачу лицензии?

person PlageMan    schedule 25.10.2010
comment
Среда выполнения Firebird 2.1.x. Теперь, за некоторыми исключениями платформы, необходимо правильно установить среду выполнения как сборку. Минимальная среда выполнения состоит из трех файлов: msvcr80.dll, msvcp80.dll и манифеста (Microsoft.VC80.CRT.manifest). Необходимый! - person amstegraf; 06.12.2014

Я поместил библиотеки DLL Firebird в каталог проекта Firebird. Добавлено событие Post Build для копирования файлов.

copy $(ProjectDir)Firebird\*.dll $(ProjectDir)$(OutDir)*.dll"
person bill    schedule 28.07.2012

Для Firebird 3.0.5 необходимы следующие файлы и дистрибутив:

- root\plugins\engine12.dll

- root\intl\fbintl.conf
- root\intl\fbintl.dll

- root\fbclient.dll
- root\icudt52.dll
- root\icudt52l.dat
- root\icuuc52.dll

Я проверяю их в начале своего приложения, чтобы я мог сообщить, что может пойти не так.

person Carlos Alberto Flores Onofre    schedule 07.06.2020