Консольное приложение.NET с Firebird Client вылетает при завершении программы

Это небольшой проект для друга, цель которого - прочитать данные из заданного файла базы данных Firebird и поместить их в шаблоны MS Office 2010... так что и Firebird как серверная часть базы данных, и офис типа проекта.NET 4.x что-то данный стек.

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

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using FirebirdSql.Data.FirebirdClient;

namespace TestFirebirdConnection
{
    class Program
    {
        static void Main(string[] args)
        {
            // Set the ServerType to 1 for connect to the embedded server
            string connectionString =
            "User=sysdba;" +
            "Password=******;" +
            "Database=C:\\...\\...\\...\\PDATA.FDB;" +
            "ServerType=1;" +
            "Charset=NONE;";

            try
            {
                FbConnection dbConnection = new FbConnection(connectionString);

                dbConnection.Open();

                string SQLCommandText = "select * from Patients";

                FbCommand dbCommand = new FbCommand(SQLCommandText, dbConnection);

                FbDataReader dr = dbCommand.ExecuteReader();

                while (dr.Read())  
                {
                    Console.WriteLine(dr["TITLE"] + " " + dr["SURNAME"] + " " + dr["NAME"]);

                }

                dr.Close();
                dbConnection.Close();

            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
}

Все работает нормально, код выводит все имена базы данных пациентов на оболочку. Я уже использовал отладчик, чтобы проверить, правильно ли закрыты datareader и dbConnection (), что имеет место.

После самой последней строки я каждый раз получаю неприятное сообщение об ошибке Windows (такого рода нарушение доступа к памяти), где не могу понять, почему это происходит.

ОБНОВЛЕНИЕ: Кажется, это связано с fbintl.dll

ОБНОВЛЕНИЕ 2: Этого не произойдет, если я подключусь к серверу Firebird (что, к сожалению, не является хорошим решением для моего легкого офисного шаблона)

Кто-нибудь знает, почему это происходит?

Я использую:

  • Firebird ADO.NET Provider 4.6 (от NuGet)
  • Firebird Embedded база данных 2.5.3 x64

Я на самом деле не уверен, с какой версией firebird был создан файл базы данных

0 ответов

Другие вопросы по тегам