2011-11-07 211 views
2

全部。 我使用DBExpress和C + + Builder(德爾福)2007年和MySQL,火鳥,... 我想贏取使用數據庫(位於我的網絡服務器)32應用程序。 我試過使用DBExpress(TSQLConnection for MySQL),它太慢了...... 我嘗試使用本地數據庫,然後使用Indy上傳/下載.. 但它不好,並且有點複雜。 那麼在win 32應用程序中使用基於web的數據庫的基本方法是什麼? 你有什麼經驗嗎?或任何文件或任何評論將是如此如此優美.. 非常感謝..什麼是使用Delphi的Web數據庫的最佳方式?

+0

沒有什麼像「網絡」數據庫。只有局域網數據庫和遠程/廣域網數據庫。傳輸協議是相同的,TCP/IP,您只是遇到了Gb本地局域網和慢速廣域網連接的區別。當數據庫可以在局域網外訪問時,還有很多安全隱患。 –

回答

0

在的DataSnap看看:通過互聯網連接(使用VPN或不)info

+0

我會嘗試..使用Datasnap ...非常感謝.. –

4

數據庫連接速度很慢 - 你是完全正確的。恕我直言的主要原因是每個請求的「ping」延遲,這在本地網絡上非常低,並且通過互聯網高得多。所以直接連接並不是一個好主意。

在Delphi的最新版本中,您有DataSnap組件,這是進行遠程訪問(包括Web訪問)的新「標準」(或Embarcadero推薦)方式。即使發現了at first to be a bit limited,最新版本也是完全可用的,並且正在成爲使用Delphi進行跨平臺應用程序構建的關鍵產品。但它並不適用於2007年德爾福

一級大部分成熟的產品(並將於2007年德爾福)是Data Abstract

數據摘要是使用多層構建數據庫驅動的應用程序 框架數據訪問模型,適用於各種平臺。

當然,這不是免費的,但這是一個經過驗證的高效解決方案。

您也可以看看我們的Client-Server ORM,它可以連接到any DB,並能實現RESTful SOA architecture with Delphi 2007,即使不使用ORM的一部分 - 也就是說,您可以使用您現有的基於dbExpress的源代碼,輕鬆地將一些網絡界面暴露給數據。它是開源的,通過安全的authentication mechanism使用JSON作爲通信格式。有很多documentation included(超過700頁的PDF),其中還試圖介紹SOA world

+0

非常感謝,我會找到那些東西... –

+2

Datasnap **是在Delphi 2007中可用。它只是一個基於DCOM的不同實現,而不是的dbExpress。它將通過使用DCOM,套接字或HTTP的Internet工作。在D2007中也有一個基於SOAP的實現。 –

+0

@Mad你說得對。但是值得一提的是,現在DCOM已經被完全棄用了,並且真正的PITA可以與Windows Seven一起使用(至少從我的實驗和憤怒的客戶反饋來看)。 –

0

你需要一個數據訪問庫,它提供的功能:

  1. 線程安全。一般來說,您需要爲每個線程使用專用連接。
  2. 連接池。爲了快速創建連接((1)所需的),必須有一個連接池。
  3. 快速執行SQL命令,打開結果集,獲取功能。
  4. 追蹤。對於任何一個庫,您都可能遇到性能問題。你需要一個工具來看看發生了什麼錯誤。爲此,您需要查看和分析客戶端和服務器通信。
  5. 結果集緩存和從不同線程同時讀取它的能力。您可能只有很少的只讀表,您將只讀取一次並緩存在應用程序中。但是你需要一個機制來從線程讀取這些數據。一種InMemTable克隆。

我的回答是偏頗的,但你可以考慮AnyDAC。它具有所有這些和許多其他功能。

PS:dbExpress也可以。嘗試首先找到性能問題的原因,而不是一個不同的庫。因爲其他庫可能會發生同樣的情況...

+0

OP談到了網絡訪問。他/她使用DBExpress作爲數據訪問庫,但問題不是這個速度不夠快,但該數據庫訪問預計可以在小* ping *的本地網絡上運行。更改爲更優化的庫(如偉大的AnyDAC)在這裏幫不了什麼忙,恕我直言。類似於DataSnap或RemObject(即更改爲SOA架構以進行遠程訪問)應該是解決方案。 –

+0

非常感謝你爲所有人做出的迴應... –

0

慢速鏈接上的數據庫應用程序需要與使用快速鏈接的應用程序不同的方法。您必須小心您移動的數據量以及您的應用程序執行的往返次數。

通常情況下,當需要的子集被緩存在客戶端上,被修改,並且應用到數據庫是最好的方法(當然,如果變化不需要馬上看到,並且衝突的可能性很低)。

如果應用程序沒有設計處理慢速鏈接,沒有中間件可以幫助您。

相關問題