我正在開發一個傳統項目,其中使用ODBC連接通過互聯網處理數據庫管理。遺留程序最近在C#中被重寫。我們目前正在討論如何改進該程序,並且使用ODBC連接數據庫有點不舒服。我已經編寫了一些例程,使用套接字和POST,PUT和GET命令與cgi或php腳本相結合來連接服務器,並且廣泛閱讀了我認爲是前進方向的AJAX範例。我的同事堅持使用ODBC。使用ODBC連接與更現代的方法有什麼區別?ODBC與通過互聯網進行數據庫管理的更新方法
回答
數據庫到應用程序協議從來沒有被設計爲通過互聯網使用。他們太嘮叨,難以保護。如果您有機會這樣做,那麼您應該考慮將數據庫封裝在適當保護的Web服務之後。
如何使用ODBC與現代方法,Web服務。這種方法有很多優點。例如:
- 多個客戶端程序可以使用單個Web服務實例來訪問數據。不需要在每個 個別應用程序中編寫與數據庫相關的代碼 。
- 用戶需要安裝ODBC驅動程序並在託管Web服務的服務器機器 上配置ODBC數據源 。客戶端 程序可以通過網絡在其他 機器上運行。
- 客戶端程序不限於.NET或Windows平臺。所有他們 必須要做的訪問數據庫是呼叫 一個Web服務。
- 數據庫連接可以在不同的客戶端 程序之間共享。
- 訪問數據庫可以從 中央位置(Web服務)進行控制和監視。
當然,也有一些安全問題和限制到您的查詢的複雜性。
那些誰不知道網絡是註定要重塑它在端口80
沒有什麼「現代」關於HTTP結束了ODBC。只要確保將其包裝在SSL和/或VPN中並使用合理的訪問控制。
它比HTTP更有效率,它不是爲此設計的。至少,HTTP命令會爲每個操作增加很多開銷。 ODBC將爲您帶來更好的延遲(這在客戶端驅動的數據庫設計中至關重要)
我完全同意你的第一句話,但真的不明白你的第二句話。你可能想要重做它。 – 2009-07-01 15:19:35
我的辦公室裏有類似的東西。他們有很多VB.NET應用程序打到本地數據庫的機器(經常會遇到太多未使用的連接)以及一些通過SSH/SSL隧道與外部數據庫聯繫的Web服務。
除非隧道出現故障,否則外部數據庫並沒有太多問題。你也可以建立一個VPN。
如果您有興趣使用AJAX/JSON/REST技術與數據庫進行通信,則可以使用抽象層,如DBSlayer。
使用TypeIV「直接」數據庫驅動程序(如C#的System.Data.SqlClient命名空間或Java的JDBC驅動程序)的效率比通過ODBC層高2-3倍(性能更好)。
我會避免ODBC,因爲它的速度較慢,我認爲它不是那麼容易。
- 1. 如何通過互聯網定期更新SQLlite數據庫?
- 2. 如何通過互聯網更新數據庫文件?
- 3. 通過互聯網連接每天更新應用數據庫
- 4. 數據庫,通過互聯網
- 5. 通過Excel更新ODBC數據庫
- 6. 通過互聯網更新應用程序的最佳方法?
- 7. 通過互聯網傳輸數據最簡單的方法,Python
- 8. 通過互聯網進行數據傳輸
- 9. 如何通過互聯網遠程發送數據更新到託管的MySQL數據庫?
- 10. 通過互聯網的實時數據
- 11. Python:與Oracle數據庫進行交互而不使用ODBC
- 12. 如何通過互聯網從SQL數據庫獲取數據
- 13. 從Android上通過互聯網從數據庫檢索數據
- 14. 通過互聯網同步SQL數據
- 15. 通過互聯網
- 16. 通過互聯網
- 17. 通過互聯網
- 18. 通過互聯網
- 19. 管理數據庫更新
- 20. 互聯網連接管理?
- 21. HttpClient/WebClient - 通過代理與網站進行交互的問題
- 22. 從互聯網資源更新ContentProvider的基礎SQLite數據庫
- 23. 通過互聯網更新MSI安裝的最佳方法是什麼?
- 24. 通過Access中的ODBC鏈接表更新SQLite數據庫
- 25. 以安全的方式通過互聯網發送數據
- 26. 通過互聯網交換數據的最佳方式
- 27. 如何通過互聯網獲取地理數據?
- 28. 如何通過互聯網訪問數據庫(+ Ionic和PouchDB)
- 29. 遠程數據庫訪問任何通過互聯網
- 30. 通過互聯網連接SQL部署數據庫
+1爲「妥善保護」的網站svc。 @Jay - 最新的WSE是一個開始的好地方 – 2009-07-01 14:45:20