Подтвердить что ты не робот

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

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

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

  • Загруженный сервер встроенной памяти Firebird < Firebird Embedded Server v2.5.0).

    /li >
  • Добавлен ссылка на FirebirdSql.Data.FirebirdClient.dll на мой проект.

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

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

  • Добавлен " с использованием инструкции 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());
         }

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

спасибо:)

EDIT: вот что я получаю в исключении:

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.CheckOut() в FirebirdSql.Data.FirebirdClient.FbConnection.Open() в fbTestApp.Form1.button1_Click (Объект отправителя, EventArgs e) в C:\Documents и Настройки\ermac\Мои документы\Визуальные студия 2010\Projects\fbTestApp\fbTestApp\Form1.cs: линии 25

4b9b3361

Ответ 1

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

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

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

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

Ответ 2

С встроенным 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, я думаю, мы должны также распространять их с приложением для выдачи лицензии?

Ответ 3

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

copy $(ProjectDir)Firebird\*.dll $(ProjectDir)$(OutDir)*.dll"