Кажется, у меня проблема с подключением к встроенной базе данных FireBird из примера приложения C #. Вот что у меня есть.
static void Main(string[] args)
{
//Some constant parameters used to form up the connection string...
#region constant literals
const String User = "SYSDBA";
const String Password = "masterkey";
const String DBPath = "D:\\!tmp\\1\\cafw.fdb";
const String DLLPath = @"fbembed.dll";
const String Charset = "WIN1251";
const int Dialect = 3;
#endregion
//I check whether we actually have a database file nearby
//and fbembed.dll. If we don't - we leave
if (File.Exists(DBPath) == true && File.Exists(DLLPath) == true)
{
//I form up a connection string out of literals I've declared above
FbConnectionStringBuilder CStr = new FbConnectionStringBuilder();
CStr.ServerType = FbServerType.Embedded;
CStr.UserID = User;
CStr.Password = Password;
CStr.Dialect = Dialect;
CStr.Database = DBPath;
CStr.Charset = Charset;
CStr.ClientLibrary = DLLPath;
//And then I finally try to connect
FbConnection Conn = new FbConnection(CStr.ToString());
try
{
//See what we've got in the end
Console.WriteLine(CStr.ToString());
//And try to connect
Conn.Open();
}
catch (Exception Ex)
{
//Show me what has gone wrong
Console.WriteLine("\n" + Ex.Message.ToString());
Console.ReadKey();
}
finally
{
Conn.Close();
}
}
}
Проблема в том, что это дает мне
тип сервера = встроенный; идентификатор пользователя = SYSDBA; пароль = мастер-ключ; диалект = 3; начальный каталог = D:! Tmp \ 1
\ cafw.fdb; набор символов = WIN1251; клиентская библиотека = fbembed.dll
Не найдено сообщений для кода ошибки 335544972.
Неверная последовательность ESCAPE
в качестве вывода.
Я погуглил, чтобы узнать код ошибки 335544972, и, похоже, что-то связано с неверной строкой соединения, но я не нашел никакой «официальной» информации об этом.
Разве кто-нибудь сталкивался с чем-то подобным, чтобы можно было сказать мне, что я делаю не так?
Спасибо.
UPD:
Как было рекомендовано, я попытался упростить строку подключения. Итак, вместо того, что было сделано выше, я использовал
FbConnection Conn = new FbConnection("Database=D:\\tmp\\1\\cafw.fdb;ServerType=1");
, и он дал мне сообщение, что «Trusted Auth не поддерживается на Embedded Firebird». Итак, я попытался использовать обычный логин sysdba
FbConnection Conn = new FbConnection("Database=D:\\tmp\\1\\cafw.fdb;ServerType=1;User=SYSDBA;Password=masterkey");
и получил то же самое сообщение об ошибке.