Это небольшой проект для друга, целью которого является чтение данных из заданного файла базы данных 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);
}
}
}
}
Все работает нормально, код выводит все имена из базы данных пациентов в оболочку. Я уже использовал отладчик, чтобы проверить, правильно ли закрыто () устройство чтения данных и dbConnection, что так и есть.
После самой последней строки я каждый раз получаю неприятное сообщение об ошибке Windows (такое нарушение доступа к памяти), где я не могу понять, почему это происходит.
ОБНОВЛЕНИЕ: похоже, это связано с fbintl.dll
ОБНОВЛЕНИЕ 2: этого не происходит, если я подключаюсь к серверу firebird (что, к сожалению, не является хорошим решением для моего легкого проекта офисного шаблона)
Кто-нибудь знает, почему это происходит?
Я использую:
- Поставщик Firebird ADO.NET 4.6 (из NuGet)
- Встроенная база данных Firebird 2.5.3 x64
На самом деле я не уверен, с какой версией firebird был создан файл базы данных.