Как подключить и использовать встроенный сервер Firebird db с Visual C # 2010 - PullRequest
12 голосов
/ 25 октября 2010

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

  1. Скачано Поставщик данных Firebird .Net ( Клиент Firebird v2.5.2 ).

  2. Загружен Встроенный сервер Firebird ( Встроенный сервер Firebird v2.5.0 ).

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

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

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

  6. Добавлено выражение " с использованием выражения 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());
         }

Я всегда получаю сообщение, которое означает, что код не подключается к моей БДфайл проPerly.Я делаю что-то неправильно?Я действительно все еще нуб с 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.CheckatanefbFF (atb).Form1.button1_Click (Отправитель объекта, EventArgs e) в C: \ Documents and Settings \ ermac \ Мои документы \ Visual Studio 2010 \ Projects \ fbTestApp \ fbTestApp \ Form1.cs: строка 25

Ответы [ 3 ]

10 голосов
/ 25 октября 2010

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

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

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

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

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

2 голосов
/ 28 июля 2012

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

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