DataSnap 2010 – Enviando e recebendo ARRAY de objetos
in Delphi (Win32) by Andreano Lanusse — 26 de setembro de 2009 at 9:28 | 3 comments
Dando sequência ao tema transferência de objetos com DataSnap o qual iniciei escrevendo sobre a transferência de um simples objeto, o qual é pré-requisito para entender este artigo, neste post descrevo como transferir uma lista (Array) de objetos.
Como já mencionei todo o envio e retorno de objetos em DataSnap deve ser feito através de JSON, no caso de retorno de uma lista de objetos devemos retornar um TJSONArray, o qual terá uma lista de TJSONObject.
Abaixo a implementação de uma função o qual retorna uma array de TCustomer.
function TServerMethods2.ListofCustomer: TJSONArray;
var
I: Integer;
myCustomer: TCustomer;
begin
Result := TJSONArray.Create;
for I := 0 to 20 do
begin
myCustomer := GetCustomer;
myCustomer.Name := 'Customer ' + IntToStr(i);
myCustomer.Age := i;
Result.AddElement(CustomerToJSON(myCustomer));
end;
end;
Repare que cada elemento do Array é transformado de TCustomer para TJSONValue, o que requer no lado cliente a conversão de TJSONValue para TCustomer, abaixo um exemplo
var
proxy: TServerMethods2Client;
mySingleCustomer: TCustomer;
allCustomers : TJSONArray;
i: Integer;
begin
try
proxy := TServerMethods2Client.Create(SQLConnection1.DBXConnection);
allCustomers := proxy.ListofCustomer;
for i := 0 to allCustomers.Size -1 do
begin
mySingleCustomer := JSONToCustomer(allCustomers.Get(i));
MMCustomer.Lines.Add(mySingleCustomer.ToString);
mySingleCustomer.Free;
end;
finally
proxy.Free;
end;
end;
No próximo post vamos abordanar o tema relacionado ao retorno de objetos complexos.
Download do código fonte
Posts relacionados
- Teste nosso servidor DataSnap XE instalado no Amazon Cloud
- DataSnap XE e Windows Azure – RAD Studio XE Preview #3
- Delphi Tour 2010 – slides e exemplos disponibilizados para download
- Delphi Tour 2010 – Um resumo do que será o evento
- Delphi Tour 2010
- Como utilizar parâmetros em dbExpress (DBX) Framework
Tags: DataSnap Delphi (Win32) Embarcadero
Tags
Posts Recentes
Utilizando expressões regulares para validar endereço IP no Delphi XE
Delphi (Win32) | setembro 9, 2010 | 1 comment
Ao comprar Delphi XE (aka Delphi 2011) você recebe as versões do Delphi 7, 2007, 2009 e 2010
Delphi (Win32), Delphi Prism (.NET) | setembro 8, 2010 | 2 comments
Teste nosso servidor DataSnap XE instalado no Amazon Cloud
Delphi (Win32) | setembro 3, 2010 | 1 comment
Vídeos
Usando Rapid SQL XE com InterBase e Firebird
Database | junho 29, 2010 | 3 comments
Delphi, ER/Studio e DB Optimizer em ação
Database, Delphi (Win32), Delphi Prism (.NET) | maio 25, 2010 | 1 comment
Mais previews sobre a próxima versão do Delphi for PHP
RadPHP (Delphi for PHP) | maio 7, 2010 | 14 comments
Apresentações do Delphi Conference Online disponibilizadas para download
Delphi (Win32) | fevereiro 27, 2010 | 5 comments









Developer Network
3 Comments
[...] No caso to TJSONObject foi utilizado o método ToString o qual retorna a representação do objeto em formato JSON, através da classe TJSONUnMarshal convertermos para TCustomer, esta conversão foi tratada no posto anterior. [...]
ótimo artigo, contudo gostaria de saber como proceder com campos do tipo BLOB.
como enviar e receber este tipo de dado usando Datasnap REST ?
obrigado
Paulo
Oi Paulo,
Basta usar o tipo Stream que você irá conseguir enviar tipos binário.