以前の質問「BDE と Delphi を使用して dBase ファイルにアクセスする良い方法は何ですか?」のフォローアップとしてこれを尋ねています。
標準入力/出力を介してデータを渡す代わりに、Delphi COM サーバーを呼び出すことが提案されましたが、そのような解決策は非常に限られていることに完全に同意します。
基本的に、ADO/OLEDB を使用せずに C# から BDE を呼び出す方法が必要です。もともと私の要件は、クエリを直接実行する機能と、ある種の RecordSet オブジェクトが返されることでしたが、次のようなメソッドを使用して厳密に型指定されたインターフェイスでも問題ありません。
uint CreateCustomer(string fname, string lname, string addr, string email) uint CreateContract(...) bool DeleteContract(...)
COM サーバーを regsvr32 に登録する必要はなく、Interop と DllImport を使用して DLL メソッドを直接呼び出すことをお勧めします。後者のアプローチを使用する場合、リソースのクリーンアップと「BDE セッション」に関して特別な考慮事項はありますか?
また、例外を処理し、例外が発生した場合に BDE (またはその他の) リソースが確実に解放されるようにする適切な方法は何でしょうか?
たくさんの質問がありますが、それらを明確に提示する方法がよくわかりません:)
編集: BDE が「死んでいる」ことは十分承知していますが、まだ BDE を使用しているサードパーティ ソフトウェアを制御することはできません。