Usando um servidor REST DataSnap com um aplicativo
Estou usando o DataSnap Rest Client Module e tenho uma função que me retornar um TDataSet, como eu poderia pegar o retornar para exibir o resultado?
Usando Delphi 2010
função no servidor:
Usando Delphi 2010
função no servidor:
function PegaFaturamento(Vendedor: Double; Cliente: Double; Produto: string; Inicio: string; Fim: string; out Mensagem: string; const ARequestFilter: string = ''): TDataSet; //função no servidor function TServerMethodsAtualizacaoClient.PegaFaturamento(Vendedor: Double; Cliente: Double; Produto: string; Inicio: string; Fim: string; out Mensagem: string; const ARequestFilter: string): TDataSet; begin if FPegaFaturamentoCommand = nil then begin FPegaFaturamentoCommand := FConnection.CreateCommand; FPegaFaturamentoCommand.RequestType := 'GET'; FPegaFaturamentoCommand.Text := 'TServerMethodsAtualizacao.PegaFaturamento'; FPegaFaturamentoCommand.Prepare(TServerMethodsAtualizacao_PegaFaturamento); end; FPegaFaturamentoCommand.Parameters[0].Value.SetDouble(Vendedor); FPegaFaturamentoCommand.Parameters[1].Value.SetDouble(Cliente); FPegaFaturamentoCommand.Parameters[2].Value.SetWideString(Produto); FPegaFaturamentoCommand.Parameters[3].Value.SetWideString(Inicio); FPegaFaturamentoCommand.Parameters[4].Value.SetWideString(Fim); FPegaFaturamentoCommand.Execute(ARequestFilter); Mensagem := FPegaFaturamentoCommand.Parameters[5].Value.GetWideString; Result := TCustomSQLDataSet.Create(nil, FPegaFaturamentoCommand.Parameters[6].Value.GetDBXReader(False), True); Result.Open; if FInstanceOwner then FPegaFaturamentoCommand.FreeOnExecute(Result); end;
//pegar resultado na aplicação procedure TfrmTeste.Button2Click(Sender: TObject); var Mensagem:String; temp :TServerMethodsAtualizacaoClient; cliente :TDataSet; begin temp := TServerMethodsAtualizacaoClient.Create(ClientModule.DSRestConnection1); try cliente := temp.PegaFaturamento(1,StrToFloat(Edit1.Text),Edit2.Text,Edit3.Text,Edit4.Text,Mensagem,''); //pegar o resultado desta consulta finally temp.Free; end; end;
Crist
Curtidas 0