Есть ли какие-либо "ошибки", возникающие при вызове 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