delphi三層架構


我們的delphi程序很多是以前開發的,采用典型的CS架構,由程序直接連接數據庫。現在需要改成在外網可以直接操作軟件。先把數據庫搬到了阿里雲上,測試發現直接連數據庫和VPN連接測試速度很慢,直連還容易掉線。服務器申請大的帶寬又太貴。把數據訪問和一些業務邏輯改寫成服務,由於軟件太大,開發和測試需要投入大量工作,也不現實。最后通過使用SATRDA解決了問題。

    SATRDA 服務器和客戶端通過HTTP實現通訊,只有需要數據交互的時候才與服務器通訊,解決了連接掉線的問題。通過提供ODBC驅動的方式,使得客戶端代碼不需要改變,就實現了兩層到三層的轉換。

SATRDA使用過程

1. 首先打開server/config目錄下的dbconfig文件,

 

[html]  view plain  copy
 
  1. {  
  2.     "mssql": {  
  3.         "DBType": "odbc",  
  4.         "Provider": "driver=sql server;server=127.0.0.1;uid=sa;pwd=sql;database=test"  
  5.     },  
  6.     "orcl": {  
  7.         "DBType": "odbc",  
  8.         "Provider": "driver=Oracle in OraDb10g_home1;SERVER=ORCL;uid=system;pwd=sql;EXC=T"  
  9.     }  
  10. }  

修改數據庫連接設置。其中  mssql是客戶端連接的名字,可以隨意取,DBType為odbc是固定的。server對應數據庫服務名,uid為用戶名,pwd為密碼,database為數據庫名,

 

2. 運行satserver.exe

3. 修改連接字符串如下。

 

 

[delphi]  view plain  copy
 
  1. server := '127.0.0.1:5555';  
  2.   db := 'mycon1';  
  3.   
  4.   ADOConnection1.ConnectionString := 'driver=Smart ODBC Driver;server=' + server + ';DB_NAME=' + db + ';Uid=1;Pwd=;HTTPS=0;PB=0;' ;  
  5.   ADOConnection1.CursorLocation := clUseClient;   //注意需要設置為clUseClient  
  6.   ADOStoredProc1.Connection := ADOConnection1;  

完成后,其它操作都和原來一樣。

 

 

阿里雲單核1M帶寬檢索10W條記錄,直連65秒,satrda不到3秒。

 

 

下載地址:

QQ群:374683171  (交流、下載最新版本)

 

版權聲明:本文為博主原創文章,未經博主允許不得轉載。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM