delphi 三層建立

所謂三層:
(1) 客戶端
(2) 服務器端
(3) 數據庫
    在數據訪問時,使得客戶端必須經過服務器來訪問數據庫。提升了系統的安全性。
    在Delphi中可使用Socket或者Dcom來鏈接他們相互間的通信。若是使用Scocket在系統使用時必須提供Scocket鏈接器,而Dcom則不用。客戶端和服務器的鏈接須要Broker來聯繫。


環境爲winxp sp2 + delphi 7 + db7.(MSSQL2000)

建立過程:
一、 請不要新建application.file-new-activex-activex library,file --new--other,選 擇"Multitier"--"Remote data module"。在跳出來的對話框裏面輸入名稱(任意),例如:AppSqlConn。選擇確 定,進入remote data module窗口。
二、加入組件:adodataset,點擊connectionstring屬性,點擊後面 的…,進入設定鏈接窗口。選擇:use connection string--build,在提供程序中選 擇:"Microsoft ole db provider for sql server",在鏈接中:服務器名稱輸入sql server的ip地 址,登陸信息中輸入用戶名和密碼(sql server),在選擇數據庫中選擇本身想要使用的數據庫。通常只要地址正確、用戶名和密碼無誤,確定能夠鏈接 經過。肯定退出

三、在commandtext中點擊後面的…,進入sql 語句設定,根據本身的要求設定。
四、將active屬性設置爲true。只要前面的設定是正確的,這裏應該順利經過。
五、加入組件:datasetprovider。設定其dataset屬性爲上面的adodataset。
六、到此服務器端已經設置完成。請保存而且運行一次,從而使服務註冊。
七、運行delphi的bin目錄下面的scktsrvr,由於下面要使用socket鏈接。運行後任務欄中出現socket server的圖標。
八、新建程序(application),而後file--new--data module,會建立客戶端的data module。
九、 加入組件:socketconnection,在address中輸入sql server的ip地址,而後在servername中輸入剛纔建立的 remote data module的服務程序。程序會自動在serverguid中加入id。而後選擇connected屬性爲true。只要此處不 報告錯誤,此程序基本成功了。
十、加入組件:clientdataset,選擇remoteserver屬性爲socketconnection,選擇providename爲服務器程序的datasetprovider。而後選擇active屬性爲true。
十一、 到程序的form窗口狀態,首先選擇file--use unit,選擇上面建立的data module,肯定。而後加入組件datasource和 dbgrid。選擇datasourece的dataset屬性爲data module的clientdataset,選擇dbgrid的 datasource爲這裏的datasource組件。如今應該能夠看到dbgrid的窗口中出現了想要的數據。保存而且編譯客戶端程序。
十二、客戶端分發軟件設定。從服務器端拷貝midas.dll文件到本機的system(98)或者system32(2000),通常本身就能夠註冊,不然用regsvr32 midas.dll註冊一下。而後將剛纔客戶端程序拷貝過來運行一下,應該能夠正常運行。


還有拒絕訪問的錯誤我也碰到過,是沒有打開borland socket server,該程序是borland/bin/scktsrvr.exe
註冊服務器端時應該使用 run-install mts objects安裝到組件服務裏,安裝完後能夠在
控制面板-組件服務裏找到服務器的GUID,而後填到borland socket server裏就能夠了。
若是須要code的話,請發mail到tech@chinajstar.net


scktsrvr.exe 是一個NT的服務程序,你用scktsrvr.exe -install安裝以後,每次系統啓動,它都會自動運行的。若是你的客戶端用了 socketconnection,每次鏈接應用服務器的時候,都須要經過scktsrvr.exe才能訪問到你的應用服務器.

scktsrvr.exe -uninstall 便可卸載

midas.dll是個什麼文件?

1.數據庫三層的文件.
2.TClientDataSet小家碧玉,恐怕人人都喜歡使用。可是,都知道娶TClientDataSet是有代價的,由於你同時也得面對丈母孃MIDAS.DLL。
3.delphi用來設計多層應用程序的動態庫,用來做客戶端和服務器鏈接和處理。
4. Multi-tier distributed application service
   多層分佈式開發服務
   midas.dll是它運行時須要的動態鏈接庫。
5.你安裝好delphi時裝在system32裏的,delphi的一個DLL.


能不能使用TClientDataSet又不用MIDAS.DLL呢?

很簡單,就是uses一下MidasLib單元!
MidasLib單元在Delphi6中才有,是Lib目錄下的一個dcu文件。一旦在你的源程序中引用了MidasLib單元,程序運行時就再也不須要MIDAS.DLL文件。
然而,編譯後程序大小必定會增長200k以上,即便使用包編譯模式。sql

相關文章
相關標籤/搜索