unit LoginForm; interface uses SmartCL.System, SmartCL.Graphics, SmartCL.Components, SmartCL.Forms, SmartCL.Fonts, SmartCL.Borders, SmartCL.Application, SynCrossPlatformREST, SmartTests, SmartCL.Controls.Label, SmartCL.Controls.Editbox, SmartCL.Controls.Panel, SmartCL.Controls.Button, w3c.date; type TLoginForm=class(TW3form) procedure W3Button1Click(Sender: TObject); procedure ConnectClick(Sender: TObject); private {$I 'LoginForm:intf'} protected procedure InitializeForm; override; procedure InitializeObject; override; procedure Resize; override; end; implementation uses mORMotClient; // unit generated by the server! { TLoginForm } procedure TLoginForm.InitializeForm; begin inherited; // this is a good place to initialize components end; procedure TLoginForm.InitializeObject; begin inherited; {$I 'LoginForm:impl'} LogonPassword.InputType := itPassword; end; procedure TLoginForm.ConnectClick(Sender: TObject); var model: TSQLModel; begin BrowserAPI.console.time('ORM'); writeln('Creating Data Model'); model := GetModel; model.GetTableIndexExisting(TSQLRecordPeople); var people := new TSQLRecordPeople; var s := model.InfoExisting(people.RecordClass).ToJSONAdd(nil,people,true,''); assert(s='{"RowID":0,"FirstName":"","LastName":"","YearOfBirth":0,"YearOfDeath":0,'+ '"Sexe":0,"Simple":{"F":"","G":[],"H":{"H1":0,"H2":"","H3":{"H3a":false,"H3b":null}},"I":"","J":[]}}'); s := '{"RowID":10,"FirstName":"ab\"c","LastName":"def","YearOfBirth":20,"YearOfDeath":30,'+ '"Sexe":1,"Simple":{"F":"","G":[],"H":{"H1":0,"H2":"","H3":{"H3a":false,"H3b":null}},"I":"","J":['+ '{"J1":1,"J2":"","J3":"reLast"}]}}'; assert(people.FromJSON(s)); assert(people.ID=10); assert(people.FirstName='ab"c'); assert(people.LastName='def'); assert(people.YearOfBirth=20); assert(people.YearOfDeath=30); assert(people.Sexe=sMale); assert(people.Simple.J.Count=1); assert(people.Simple.J[0].J1=1); assert(people.Simple.J[0].J3=reLast); writeln('Connecting to the server at '+ServerAddress.Text+':888'); GetClient(ServerAddress.Text,LogonName.Text,LogonPassword.Text, lambda(client) client.LogToRemoteServer(LOG_VERBOSE,'localhost'); writeln('Safely connected with SessionID='+IntToStr(client.Authentication.SessionID)); people := TSQLRecordPeople.Create(client,1); assert(people.ID=1); writeln(people.ToJSON(client.Model,'*')); writeln('Testing remote CRUD methods'); ORMTest(client); BrowserAPI.console.timeEnd('ORM'); BrowserAPI.console.time('SOA'); writeln('Testing SOA remote access'); SOATest(client, lambda writeln('Disconnect from server'); client.Free; BrowserAPI.console.timeEnd('SOA'); end, lambda writeln('ERROR!'); writeln('Disconnect from server'); client.Free; BrowserAPI.console.timeEnd('SOA'); end); end, lambda ShowMessage('Impossible to connect to the server'); writeln('ERROR at GetClient'); BrowserAPI.console.timeEnd('ORM'); end); end; procedure TLoginForm.W3Button1Click(Sender: TObject); begin BrowserAPI.console.time('LowLevel'); TestSMS; BrowserAPI.console.timeEnd('LowLevel'); end; procedure TLoginForm.Resize; begin inherited; end; end.