2009-07-01 39 views
2

我正在開發一個傳統項目,其中使用ODBC連接通過互聯網處理數據庫管理。遺留程序最近在C#中被重寫。我們目前正在討論如何改進該程序,並且使用ODBC連接數據庫有點不舒服。我已經編寫了一些例程,使用套接字和POST,PUT和GET命令與cgi或php腳本相結合來連接服務器,並且廣泛閱讀了我認爲是前進方向的AJAX範例。我的同事堅持使用ODBC。使用ODBC連接與更現代的方法有什麼區別?ODBC與通過互聯網進行數據庫管理的更新方法

回答

4

數據庫到應用程序協議從來沒有被設計爲通過互聯網使用。他們太嘮叨,難以保護。如果您有機會這樣做,那麼您應該考慮將數據庫封裝在適當保護的Web服務之後。

+1

+1爲「妥善保護」的網站svc。 @Jay - 最新的WSE是一個開始的好地方 – 2009-07-01 14:45:20

0

如何使用ODBC與現代方法,Web服務。這種方法有很多優點。例如:

  • 多個客戶端程序可以使用單個Web服務實例來訪問數據。不需要在每個 個別應用程序中編寫與數據庫相關的代碼 。
    • 用戶需要安裝ODBC驅動程序並在託管Web服務的服務器機器 上配置ODBC數據源 。客戶端 程序可以通過網絡在其他 機器上運行。
    • 客戶端程序不限於.NET或Windows平臺。所有他們 必須要做的訪問數據庫是呼叫 一個Web服務。
    • 數據庫連接可以在不同的客戶端 程序之間共享。
    • 訪問數據庫可以從 中央位置(Web服務)進行控制和監視。

當然,也有一些安全問題和限制到您的查詢的複雜性。

1

那些誰不知道網絡是註定要重塑它在端口80

沒有什麼「現代」關於HTTP結束了ODBC。只要確保將其包裝在SSL和/或VPN中並使用合理的訪問控制。

它比HTTP更有效率,它不是爲此設計的。至少,HTTP命令會爲每個操作增加很多開銷。 ODBC將爲您帶來更好的延遲(這在客戶端驅動的數據庫設計中至關重要)

+0

我完全同意你的第一句話,但真的不明白你的第二句話。你可能想要重做它。 – 2009-07-01 15:19:35

0

我的辦公室裏有類似的東西。他們有很多VB.NET應用程序打到本地數據庫的機器(經常會遇到太多未使用的連接)以及一些通過SSH/SSL隧道與外部數據庫聯繫的Web服務。

除非隧道出現故障,否則外部數據庫並沒有太多問題。你也可以建立一個VPN。

如果您有興趣使用AJAX/JSON/REST技術與數據庫進行通信,則可以使用抽象層,如DBSlayer

0

使用TypeIV「直接」數據庫驅動程序(如C#的System.Data.SqlClient命名空間或Java的JDBC驅動程序)的效率比通過ODBC層高2-3倍(性能更好)。

我會避免ODBC,因爲它的速度較慢,我認爲它不是那麼容易。