2014-02-12 41 views
0

我們在這裏使用特定的ODBC驅動程序來訪問遺留數據庫。我們的自制軟件(連接到數據庫的2層應用程序)可以真正用於某些操作。不幸的是,由於許可限制,我們無法在多臺計算機上部署ODBC驅動程序。我正在尋找一種方法來解決這個問題。作爲WCF服務的客戶端自定義ADO.NET實現?

我最初的想法是一個WCF服務和POCO。但是,由於應用程序引用了一個具有豐富的通用ADO.NET輔助函數集的庫,我真的想重用這些來與服務器進行通信。所以我正在考慮讓自己的ADO.NET實現訪問WCF服務,而WCF服務又會公開會話對象來處理客戶端發送的查詢。

以前有人做過這樣的事嗎?實施我自己的ADO提供商需要面對哪些挑戰?另外,在我去重新發明輪子之前,是否有這樣的東西存在?

回答

1

您可以使用ODBC-ODBC Bridge從任何其他機器訪問舊版ODBC驅動程序,並仍然通過ODBC訪問它。聽起來像這樣會少得多。

更新:我只能描述Easysoft ODBC-ODBC Bridge,因爲我沒有看到任何其他橋的代碼。在客戶端安裝OOB客戶端ODBC驅動程序。在服務器端安裝服務。客戶端有效地將您的ODBC調用和數據發送到服務器,並將它們重定向到您要使用的實際ODBC驅動程序。當然,在ODBC API和協議中都會執行大量優化。這樣做有很多好處:a)你可以使用你不能獲得的驅動程序來編寫你想要的平臺; b)你可以使用32位應用程序與64位驅動程序進行交流,反之亦然; c)你可能只會能夠或想要爲服務器上的驅動程序/數據庫使用一個許可證d)您可以通過網絡訪問遠程驅動程序等。

事務在Easysoft OOB中正確處理。

+0

它是如何工作的?它有它自己的ODBC驅動程序?它將查詢原樣傳遞給服務器上的真實ODBC?交易支持如何? – Crono