Я пытаюсь получить 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: недопустимый дескриптор базы данных (без активного подключения) ---> недопустимого дескриптора базы данных (без активного подключения)
Что идет не так?
Я не думаю, что Firebird Embedded будет работать с поставщиком Firebird .net на Mono. Я предполагаю (но я могу ошибаться), он использует некоторые особенности Windows. Возможно, вы захотите задать этот вопрос на Firebird.net provider listinglist также. –