Embarcadero RAD Studio XE

DataSnap Server 基礎 - 一個簡單的計算機服務

這個練習中,Server端準備了4個服務函式:Add, Subtract, Divide, 和Multiply,由客戶端呼叫Server端服務函式,並將結果傳回。

I. Create Simple Calculator Server Application

建立一個DataSnap Server應用程式,

在最後一個畫面,選擇父類別為“TComponent”。

單擊“Finish”完成此次專案建立精靈,此時會建立1個專案和3個單元。

操作“File -> Save All”以儲存整個專案。

新增一個目錄來儲存這個專案及檔案,例:"C:\DelphiProjects\DataSnapServerSimpleCalc"

將主要的應用程式表單儲存為 “FormServerUnit”,並將其他2個單元保留他們的預設名字

  • “ServerContainerUnit1”
  • “ServerMethodsUnit1”
  • 並且將專案儲存並命名為 “SimpleCalcServer”.

在這個階段,專案管理視窗應該看起來像是這樣:

打開“ServerMethodsUnit1.pas”單位並且實作所有的計算機服務功能。把原本的範例程式碼(“EchoString” 和 “ReverseString”)修改置換成4個函式:“Add”, “Subtract”, “Multiply” and “Divide” 。

“ServerMethodsUnit1” 單元的程式碼摘錄如下:

 unit ServerMethodsUnit1;

interface

uses System.SysUtils, System.Classes, Datasnap.DSServer, Datasnap.DSAuth;

type
{$METHODINFO ON}
  TServerMethods1 = class(TComponent)
  private
    { Private declarations }
  public
    { Public declarations }
    function Add(a, b: double): double;
    function Subtract(a, b: double): double;
    function Multiply(a, b: double): double;
    function Divide(a, b: double): double;
  end;
{$METHODINFO OFF}

implementation


uses System.StrUtils;

function TServerMethods1.Add(a, b: double): double;
begin
  Result := a + b;
end;

function TServerMethods1.Subtract(a, b: double): double;
begin
  Result := a - b;
end;

function TServerMethods1.Multiply(a, b: double): double;
begin
  Result := a * b;
end;

function TServerMethods1.Divide(a, b: double): double;
begin
  Result := a / b;
end;

end.

Server端的應用程式已經實現完成,在進行下一步驟前,此Server端應用程式應先執行,執行時,請在專案上按右鍵 ,選擇“Run -> Run Without Debugging”啟動Server應用程式。(不要關閉此Server,一直到整個練習結束前。)

II. Create Simple Calculator Client Application

在現有的專案群上再新增一個專案:

單擊 “OK”. 一個新的專案應該加入專案群裏。

操作“File -> Save All”儲存所有的檔案。

將檔案儲存在之前建立的目錄中,把主要表單儲存並命西為 “FormClientUnit”,新專案儲存命名為 “SimpleCalcClient”,並且將專案郡儲存命名為“SimpleCalcGrp”。

此時,專案管理員畫面看起來應該如下:

:

Make sure that the client project is active and from the “New Items” dialog select “DataSnap Client Module”.

註:如果在Server端增減修改Server方法,Client端則要重新第2步驟(最簡單)