Есть ли какие-либо "ошибки", возникающие при вызове BDE через сервер Delphi COM или DLL из.NET?

Я спрашиваю это в качестве продолжения моего предыдущего вопроса: Каков хороший способ доступа к файлам dBase с использованием BDE и Delphi?

Было предложено, чтобы я использовал COM-сервер Delphi вместо передачи данных через стандартный ввод / вывод, и я полностью согласен, что такое решение очень ограничено.

В основном мне нужен способ вызова BDE из C# без использования ADO/OLEDB. Первоначально моим требованием было наличие возможности выполнять запросы напрямую и возвращать какой-то объект RecordSet, но я также согласен со строго типизированным интерфейсом с таким методом, как:

uint CreateCustomer (строка fname, строка lname, строка addr, строка email) uint CreateContract(...) bool DeleteContract(...)

Я бы предпочел не регистрировать COM-сервер с помощью regsvr32, а использовать Interop и DllImport для прямого вызова методов DLL. Используя последний подход, есть ли какие-то особые соображения в отношении очистки ресурсов и "сеансов BDE", а что нет.

Кроме того, каков будет правильный способ обработки исключений и обеспечения освобождения любых ресурсов BDE (или других) в случае возникновения исключений?

У меня много вопросов, и я не совсем уверен, как их четко представить:)

РЕДАКТИРОВАТЬ: Я полностью осознаю, что BDE "мертв", но я не имею никакого контроля над сторонним программным обеспечением, которое все еще использует BDE.

1 ответ

Я пропустил ваш первоначальный вопрос о BDE, поэтому я также добавил новый ответ.

В основном: пропустите BDE и попробуйте Advantage Database Server:

  • Он поддерживает большинство (если не все) типы файлов данных xBase.
  • Для этого есть поставщик данных.NET.

--jeroen

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