在下前段時間用Delphi做了一個單機(jī)版的軟件,數(shù)據(jù)庫用access,開發(fā)過程比較順利。怎知世事難預(yù)料,有天客戶提出要在網(wǎng)絡(luò)環(huán)境下運(yùn)行此軟件!
相信很多朋友都遇到此類問題。現(xiàn)在有3條路可以走,一條是將Access數(shù)據(jù)庫升級成SQL Server數(shù)據(jù)庫,還有一條是仍然用Access,但使得它可以在網(wǎng)絡(luò)上共享數(shù)據(jù),第三條就是我們今天要討論的,將Access改造成數(shù)據(jù)庫服務(wù)器!
我當(dāng)時采用了最簡單的辦法,建議客戶將此軟件放在一個完全共享的文件夾里,哪臺機(jī)器要用,就創(chuàng)建一個快捷方式。嘿嘿,此方法的最大好處就是不用我再動腦筋。
后來我又想,能不能將Access數(shù)據(jù)庫改造成類似于服務(wù)器的版本呢?
這樣做有如下好處:1、不用安裝Windows Server版本及SQL Server版本,這些軟件安裝麻煩,價格昂貴,對機(jī)器的配置要求較高;2、客戶端安裝配置簡便。
我馬上想到了MIDAS技術(shù)(現(xiàn)改名為DataSnap)。通過創(chuàng)建一個應(yīng)用程序服務(wù)器,能不能將Access數(shù)據(jù)庫改造成服務(wù)器版本呢?
我馬上動手試驗(yàn)改造。隨便選一臺機(jī)器做服務(wù)器(操作系統(tǒng)最好在WIN98或以上),用Socket連接方式,在上面放上Access數(shù)據(jù)庫,運(yùn)行一次用DataSnap技術(shù)改造的應(yīng)用程序服務(wù)器軟件,然后將客戶端軟件拷到另一臺機(jī)器運(yùn)行。
這邊有2點(diǎn)要注意:一是服務(wù)器上一定要先運(yùn)行scktsrvr,這個程序Delphi有自帶的,二是一定要將midas.dll文件拷到客戶端的系統(tǒng)文件夾。
結(jié)果卻令我不解,客戶端可以讀出服務(wù)器上的數(shù)據(jù),但卻不能提交更改!
原來的數(shù)據(jù)連接用的是Jet.OLEDB.4.0,記得我已前用BDE做測試時,連普通DBF文件都可以做服務(wù)器呢,問題會不會在這邊?
于是我在ODBC里配置了一個指向Access數(shù)據(jù)庫的連接,然后用BDE的Database組件選擇此數(shù)據(jù)庫別名,重新測試。這一次,一切正常,成功了!
剩下一個問題,就是BDE及ODBC的打包問題。這兩個配置比較麻煩,可以用程序修改注冊表來實(shí)現(xiàn),但還有更簡便的方法。現(xiàn)在很多安裝工具都具備自動配置BDE及ODBC的功能,大家不妨選用這些工具打包。而且,由于采用多層數(shù)據(jù)庫開發(fā),只要在服務(wù)器上配置一遍就可以了,客戶端只需一個額外的MIDAS.DLL文件。
這是我自己試驗(yàn)的結(jié)果,不知誰還有更好的方法,望不吝賜教。
新聞熱點(diǎn)
疑難解答