FirebirdSql Произошла ошибка при входе в систему, пожалуйста, проверьте подробности на сервере firebird.log
Я пытаюсь подключиться и прочитать данные из базы данных Firebird с помощью провайдера FirebirdSQL .net (используя FirebirdSql.Data.FirebirdClient). Вот код:
FbConnection viewdataConnection=new FbConnection();
viewdataConnection.ConnectionString = "database=localhost:c:\\firebirdTest\\testDB.fdb;user=sysdba;password=firebird";
viewdataConnection.Open();
При попытке открыть () соединение я получаю сообщение об ошибке:
An unhandled exception of type 'FirebirdSql.Data.FirebirdClient.FbException' occurred in FirebirdSql.Data.FirebirdClient.dll
Additional information: Error occurred during login, please check server firebird.log for details
Вот деталь исключения:
FirebirdSql.Data.FirebirdClient.FbException was unhandled
ErrorCode=335545106
HResult=-2147467259
Message=Error occurred during login, please check server firebird.log for details
SQLSTATE=08006
Source=FirebirdSql.Data.FirebirdClient
StackTrace:
at FirebirdSql.Data.FirebirdClient.FbConnectionInternal.Connect()
at FirebirdSql.Data.FirebirdClient.FbConnectionPoolManager.Pool.CreateNewConnectionIfPossibleImpl(FbConnectionString connectionString)
at FirebirdSql.Data.FirebirdClient.FbConnectionPoolManager.Pool.GetConnection(FbConnection owner)
at FirebirdSql.Data.FirebirdClient.FbConnection.Open()
at UsingFirebird.FormUsers.FormUsersLoad(Object sender, EventArgs e) in C:\Users\vikas\Downloads\UsingFirebird\UsingFirebird\UsingFirebird\FormUsers.cs:line 46
at System.Windows.Forms.Form.OnLoad(EventArgs e)
at System.Windows.Forms.Form.OnCreateControl()
at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
at System.Windows.Forms.Control.CreateControl()
at System.Windows.Forms.Control.WmShowWindow(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.Form.WmShowWindow(Message& m)
at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
InnerException:
ErrorCode=335545106
HResult=-2146233088
IsWarning=false
Message=Error occurred during login, please check server firebird.log for details
SQLSTATE=08006
Source=FirebirdSql.Data.FirebirdClient
StackTrace:
at FirebirdSql.Data.Client.Managed.GdsConnection.Identify(String database)
at FirebirdSql.Data.FirebirdClient.ClientFactory.CreateManagedDatabase(FbConnectionString options)
at FirebirdSql.Data.FirebirdClient.ClientFactory.CreateDatabase(FbConnectionString options)
at FirebirdSql.Data.FirebirdClient.FbConnectionInternal.Connect()
InnerException:
Пожалуйста помоги.
1 ответ
Если вам нужно запустить сервер Firebird в режиме приложения, запустите его от имени администратора.
Это решило проблему для меня. Серверу Firebird требуется доступ на запись к некоторым файлам в папке установки.
Я решил эту проблему с помощью комментариев выше. Были предприняты шаги для решения:
- Обновлен WireCrypt = включен в файле Firebird.conf
- Предоставьте разрешения на чтение и запись всем пакетам приложений в папке установки Firebird (
C:\Program Files\Firebird\Firebird_3_0
) - У меня была база данных на
C:\FirebirdDb
папку, я удалил эту БД и создал новую БД в месте по умолчанию (то есть в папке установки Firebird).
И вот мой код:
using (var connection = new FbConnection("database=localhost:test.fdb;user=sysdba;password=masterkey;Charset=NONE;"))
{
connection.Open();
using (var transaction = connection.BeginTransaction())
{
using (var command = new FbCommand("select * from testTable", connection, transaction))
{
using (var reader = command.ExecuteReader())
{
while (reader.Read())
{
var values = new object[reader.FieldCount];
reader.GetValues(values);
Console.WriteLine(string.Join("|", values));
}
}
}
}
}