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