我們的delphi程序很多是以前開發的,采用典型的CS架構,由程序直接連接數據庫。現在需要改成在外網可以直接操作軟件。先把數據庫搬到了阿里雲上,測試發現直接連數據庫和VPN連接測試速度很慢,直連還容易掉線。服務器申請大的帶寬又太貴。把數據訪問和一些業務邏輯改寫成服務,由於軟件太大,開發和測試需要投入大量工作,也不現實。最后通過使用SATRDA解決了問題。
SATRDA 服務器和客戶端通過HTTP實現通訊,只有需要數據交互的時候才與服務器通訊,解決了連接掉線的問題。通過提供ODBC驅動的方式,使得客戶端代碼不需要改變,就實現了兩層到三層的轉換。
SATRDA使用過程
1. 首先打開server/config目錄下的dbconfig文件,
- {
- "mssql": {
- "DBType": "odbc",
- "Provider": "driver=sql server;server=127.0.0.1;uid=sa;pwd=sql;database=test"
- },
- "orcl": {
- "DBType": "odbc",
- "Provider": "driver=Oracle in OraDb10g_home1;SERVER=ORCL;uid=system;pwd=sql;EXC=T"
- }
- }
修改數據庫連接設置。其中 mssql是客戶端連接的名字,可以隨意取,DBType為odbc是固定的。server對應數據庫服務名,uid為用戶名,pwd為密碼,database為數據庫名,
2. 運行satserver.exe
3. 修改連接字符串如下。
- server := '127.0.0.1:5555';
- db := 'mycon1';
- ADOConnection1.ConnectionString := 'driver=Smart ODBC Driver;server=' + server + ';DB_NAME=' + db + ';Uid=1;Pwd=;HTTPS=0;PB=0;' ;
- ADOConnection1.CursorLocation := clUseClient; //注意需要設置為clUseClient
- ADOStoredProc1.Connection := ADOConnection1;
完成后,其它操作都和原來一樣。
阿里雲單核1M帶寬檢索10W條記錄,直連65秒,satrda不到3秒。
下載地址:
QQ群:374683171 (交流、下載最新版本)
版權聲明:本文為博主原創文章,未經博主允許不得轉載。