Есть ли какие-либо «ошибки», возникающие при вызове BDE через COM-сервер Delphi или DLL из .NET? - PullRequest
0 голосов
/ 11 июля 2010

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

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

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

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

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

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

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

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

1 Ответ

0 голосов
/ 24 июля 2010

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

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

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

- Йерун

...