Mmzrmo4Delphi遠程數(shù)據(jù)庫對象
遠程數(shù)據(jù)庫對象。 很久沒有發(fā)布東東了,今天看到盒子上有朋友發(fā)布了個三層的東東, 下來大概看了看,貌似使用起來不太方便,曾經用過ASTA和RmoObject,都不是那么讓人滿意,BUG多,并且龐大需要安裝,使用十分不方便。 為了繼續(xù)支持我喜歡的DELPHI和可愛的盒子, 特發(fā)布個自己寫的遠程數(shù)據(jù)庫對象希望能給大家平常的工作帶來便利和高效(偶自己和同事們都用了挺長時間,十分穩(wěn)定易用)。
用DELPHI 的朋友少不了要和數(shù)據(jù)庫打交道,一般小程序都使用ACCESS做數(shù)據(jù)庫感覺十分方便,不用裝服務端,客戶端不用單獨裝驅動, 發(fā)布程序時直接目錄一拷貝就完事,但缺點是不方便從其它計算機對它進行訪問, 有了偶這個東東,就可以很方便容易的實現(xiàn)咯。 ps : 就是連接Oracle和mysql,客戶端也可以不用裝驅動哦
使用步驟 解壓后找個地方存放 將GobUnit目錄添加到delphi的搜索路徑 將DXSockEnt30(我改過bug的版本)的3個子目錄也添加到delphi的搜索路徑 即可使用和編譯所有偶提供的代碼
FAQ: 這個東東都提供什么功能? 答:提供最簡單方便高效的方式,通過ADO對象實現(xiàn)遠程數(shù)據(jù)庫
這 個東東為什么不封裝成控件? 答:本類以單元形式封裝,只要加到搜索路徑后直接引用即可,無需經過安裝等麻煩的步驟。
這個東東適合應用在 什么場合? 答:適合應用于小型分布式程序。
這個東東掌握起來有難度嗎? 答:沒有任何難度,就和你開發(fā)本地數(shù)據(jù)程序一樣簡單。
這 個東東可以應用在我已有的程序里嗎? 答:由于我使用的是AdoQuery作為數(shù)據(jù)集載體,所以無需更改為其他控件,現(xiàn)有的本地數(shù)據(jù)庫程序也可以非常容易的改造為支持分布式數(shù)據(jù)庫。
這 個東東穩(wěn)定嗎? 答:經自己長期做小白鼠廣泛的實際應用實踐,發(fā)現(xiàn)方便,穩(wěn)定。
服務端的端口號是多少? 答:服務端的端口號可以隨意設置,只要不和其他程序沖突就可以,并且客戶端連接服務端時必須端口一致.
如果服務端重啟了客戶端需要重啟 嗎? 答:不用,客戶端只要連接上服務端以后就有自動斷線重連的功能。
我在使用時要注意什么? 答:如果你要用ADOQuery對象的Insert,Post方法新增數(shù)據(jù)時,記得數(shù)據(jù)表的第1個字段必須是唯一標示,并且不能為自動增長字段
這 個東東免費嗎? 答:完全免費,并且開放所有源代碼,你可以隨意改進,傳播它,當然如果更好用了,記得給我也發(fā)一份 :)(要保留偶的版權和注釋信息哦)
這個東東使用到了那些控件? 答:delphi的ADO控件,INDY,以及第3方Dxsock(服務端用)。
同 時發(fā)布的還有我自己積累的幾個常用單元,有日志,調試,tcp的通用服務和客戶端模塊等,同樣都是十分有用的東東。
這個東東有demo程序嗎? 答:有最簡單的示范程序,但時間關系只寫了最簡單的演示代碼,還有很多值得你去挖掘的實用接口和單元。
我有了改進版本,怎么聯(lián)系這個東東的作者? 答:QQ 22900104 ,Email [email protected] 馬敏釗
發(fā)布這個東東的目的是什么? 答:好用的東東大家分享,共同學習,共同進步,希望大家都能發(fā)揚開源精神。
構架說明: 大概是這樣的,偶有一個服務器對象,負責提供數(shù)據(jù)庫服務,在需要提供數(shù)據(jù)服務的程序里創(chuàng)建它即可。 使用起來十分簡單 首先引用服務端單元 uses UntRmodbSvr; //創(chuàng)建遠程服務對象 (參數(shù)1 服務端口號 日志對象,如果不需要記錄日志請?zhí)頽il)
Gob_RmoDBsvr := TRmodbSvr.Create(FSvrPort, nil);
//連接數(shù)據(jù)庫 可以是ADO支持的所有數(shù)據(jù)庫 調用TDBMrg提供的獲取各種數(shù)據(jù)庫的鏈接字符串即可,這里連接Access數(shù)據(jù)庫
Gob_RmoDBsvr.ConnToDb(TDBMrg.GetAccessConnStr('cfg.mdb'));
到此為止,2行代碼使你的這個程序具有了將數(shù)據(jù)庫發(fā)布出去的能力,其它機器的程序可以方便的通過它訪問到數(shù)據(jù)庫,像使用本地數(shù) 據(jù)庫一樣。
客戶端只需連接服務端即可,不管服務端是什么樣的數(shù)據(jù)庫,無需安裝任何數(shù)據(jù)庫驅動。 uses UntRemSql; //創(chuàng)建客戶端對象
RmoClient := TRmoHelper.Create();
//連接服務端 填入服務端地址和端口(與服務端端口一致即可)
Result := RmoClient.ReConnSvr(ISvrIP, Iport);
2行代碼使你的客戶端程序具有了方便的訪問到遠端的數(shù)據(jù)庫,像使用本地數(shù)據(jù)庫一樣,并且你原有的單機數(shù)據(jù)庫程序可以很方便改為 遠程數(shù)據(jù)庫。
