2016-05-10 3 views
2

Я пытаюсь получить Firebird-embedded 2.5 (64 бит) в Linux с помощью firebird .net provider (FirebirdSql.Data.FirebirdClient).Получение Моно с встроенной Firebird, работающей в среде 64-битного Linux

Встроенная в FB установка для моей тестовой сборки работает с WinX86_64 с версией Windows Firebird Embedded. В Linux я использую coresponding FB встроенной версии Linux размещены файлы в директории сборки:

  • libfbembed.so *
  • firebird.msg
  • security2.fdb
  • libicu *
  • libib *

Установите «RootDirectory» в каталог сборки в файле firebird.conf. Установите переменные среды оболочки LD_LIBRARY_PATH и FIREBIRD в каталог сборки.

 FbConnectionStringBuilder conn = new FbConnectionStringBuilder();    
     conn.Database = @"/home/dev/firebirdTest/1stDB.FDB"; 
     conn.ServerType = FbServerType.Embedded; 
     conn.UserID = "SYSDBA"; 
     conn.Password = "masterkey"; 
     conn.Charset = "UTF8"; 
     conn.DataSource = "localhost"; 
     conn.ClientLibrary = "libfbembed.so"; 
     string connStr = conn.ConnectionString; 
     var dbcon = new FbConnection(connStr); 
     FbConnection.CreateDatabase(connStr, pageSize: 8192, forcedWrites: true, overwrite: false); 
     dbcon = new FbConnection(connStr); 
     dbcon.Open(); 

, что я делал раньше:

  • Перенаправление Firebird Clientlibrary на моно dllmap не работает. Решено путем явной установки ClientLib в коде C#.
  • ручное создание базы данных с использованием isql на Linux.
  • создание базы данных по коду на Linux работает.
  • поставщик Firebird .NET создает в режиме отладки FB_ {sanitizedName} .dll и DynamicAssembly.dll
  • поставщик .NET действительно молчал. Отладка была выполнена путем запуска сборки с помощью «strace mono {testAssembly.exe}» в linux.
  • FbConnection.CreateDatabase вылетает с ошибкой ввода-вывода во время «открытия O_CREAT» (вызывается FbCreateDatabase), если размер страницы не равен 8192. Решите эту проблему.

Теперь, я бегу в следующие ошибки (и застрял здесь в течение нескольких дней ...):

  • Открытие существующего Databasefile (например, в коде здесь), аварии с:

    не FirebirdSql.Data.FirebirdClient.FbException: недопустимый дескриптор базы данных (без активного подключения) ---> недопустимого дескриптора базы данных (без активного подключения)

Что идет не так?

+0

Я не думаю, что Firebird Embedded будет работать с поставщиком Firebird .net на Mono. Я предполагаю (но я могу ошибаться), он использует некоторые особенности Windows. Возможно, вы захотите задать этот вопрос на Firebird.net provider listinglist также. –

ответ

0

Я тоже застрял в этой ошибке. FirebirdSql.Data.FirebirdClient.FbException: неверный дескриптор базы данных (без активного подключения) Пробовал с результатами FB 2.5. * И 3.0.0, то же самое. Также попытался использовать отладочные сборки FB. Журналы не помогли.

Возможно, кто-то здесь знает, в чем проблема?

+0

Такая же проблема здесь с .net 4.0 и EF6. Fb 3.0.1.32609 FirebirdSql.Data.FirebirdClient 5.6.0.0 –

Смежные вопросы