Creating the Server application (TObjects and DataSnap Tutorial)
Go Up to Tutorial: Passing Plain Old Delphi Objects with DataSnap
Creating the Server application
To build the server application, follow the next steps:
1. Open RAD Studio.
2. Select File > New > Other.
3. Expand C++Builder or Delphi from the left column.
4. Click DataSnap and select DataSnap Server on the right, then click OK.
5. Specify the type of application:
- Select Forms Application and press Next.
- Select FireMonkey application and press Next.
- Keep the default values to use TCP/IP Protocol.
- Uncheck the Sample Methods checkbox and press Next.
- Press Test Port to verify whether the Port 211 is open and press Next.
- Keep the TComponent selected by default and press Finish.
- Save your project by pressing the Save All button in the menu bar and save all the items in the same folder.
Note: For ease of use, name the first unit FormServerUnit and the project PODOServer.
6. Select:
- For Delphi: File > New > Unit - Delphi
- For C++: File > New > Unit - C++Builder
7. Save it as SharedStuffUnit.
8. In the SharedStuffUnit, declare a class TPerson:
Delphi:
TPerson = class (TObject)
public
property Lastname: string;
property Firstname: string;
constructor Create(ALast, AFirst: string);
function ToString: string; override;
end;
C++Builder:
class TPerson: public TObject {
public:
UnicodeString Lastname;
UnicodeString Firstname;
TPerson(String ALast, String AFirst);
__fastcall UnicodeString ToString(void);
};
9. Delphi: Generate the getters and setters using the Ctrl + Shift + C key combination.
TPerson = class (TObject)
private
FLastName: string;
FFirstname: string;
procedure SetFirstname(const Value: string);
procedure SetLastName(const Value: string);
public
property LastName: string read FLastName write SetLastName;
property Firstname: string read FFirstname write SetFirstname;
constructor Create(ALast, AFirst: string);
function ToString: string; override;
end;
10. Implement the constructor for the TPerson class from the SharedStuffUnit:
Delphi:
constructor TPerson.Create(ALast, AFirst: string);
begin
FLastName := ALast;
FFirstName := AFirst;
end;
C++Builder:
TPerson::TPerson(String ALast, String AFirst)
{
Lastname = ALast;
Firstname = AFirst;
}
11. In the SharedStuffUnit, override the ToString function:
Delphi:
function TPerson.ToString
begin
Result := Firstname + ' ' + Lastname;
end;
C++Builder:
UnicodeString __fastcall TPerson::ToString(void)
{
return Firstname + " " + Lastname;
}
- ToString is a function inherited from the TObject, so it has to be overridden.
12. In the ServerMethodsUnit1 unit, select File > Use Unit..., add the SharedStuffUnit unit and press OK.
13. In the public zone of the ServerMethodsUnit, declare the GetPerson function:
Delphi:
function GetPerson(aFirst, aLast: string): TPerson;
C++Builder:
TPerson __fastcall TPerson::GetPerson(String ALast, String AFirst);
- GetPerson is used to create and return a new instance of a TPerson class, with the given FirstName and LastName.
14. Set the Result of the function:
Delphi:
function TServerMethods1.GetPerson(aFirst, aLast: string): TPerson;
begin
Result := TPerson.Create(ALast, AFirst);
end;
C++Builder:
TPerson *TServerMethods1::GetPerson(String ALast, String AFirst)
{
TPerson *p;
p = new TPerson(ALast, AFirst);
return p;
}
15. Run > Run or press F9 to run the server.
16. Minimize the server window and go to the next step to create the client application.