JSON Array com DataSnap
Boa tarde a todos!!!
Estou encontrando um problema ao utilizar um TJsonArray com um servidor DataSnap.
Estou criando e populando meu array com TJsonString, segue um exemplo abaixo:
jaArray := TJSONArray.Create;
for I := 0 to lista.Count - 1 do
begin
jString := TJSONString.Create(lista[I]);
jaArray.AddElement( jString );
end;
Até aí, tudo certo.
Abaixo, passo a lista por parâmetro para o método no servidor DataSnap, que também retorna um TJsonArray; (jrResult é uma variável do tipo TJsonArray)
jrResult := SM_Client.Funcao(jaArray);
No finally do cliente, estou dando um .Free no jaArray e no jrResult.
O método no servidor DataSnap está da seguinte forma:
Result := TJSONArray.Create;
Adiciono as informações que preciso:
Result.AddElement('texto');
Caso não tenha informações para adicionar, retorno Result := nil;
Quando executo o método em jrResult, a primeira vez, ele roda perfeitamente, mas se, dentro da mesma instância do programa, eu o executar a segunda vez, recebo um erro de Access Violation.
Não sei se fui bem claro no exemplo, mas se alguém tiver alguma ideia do que possa ser...
Obrigado, Gabriel
Estou encontrando um problema ao utilizar um TJsonArray com um servidor DataSnap.
Estou criando e populando meu array com TJsonString, segue um exemplo abaixo:
jaArray := TJSONArray.Create;
for I := 0 to lista.Count - 1 do
begin
jString := TJSONString.Create(lista[I]);
jaArray.AddElement( jString );
end;
Até aí, tudo certo.
Abaixo, passo a lista por parâmetro para o método no servidor DataSnap, que também retorna um TJsonArray; (jrResult é uma variável do tipo TJsonArray)
jrResult := SM_Client.Funcao(jaArray);
No finally do cliente, estou dando um .Free no jaArray e no jrResult.
O método no servidor DataSnap está da seguinte forma:
Result := TJSONArray.Create;
Adiciono as informações que preciso:
Result.AddElement('texto');
Caso não tenha informações para adicionar, retorno Result := nil;
Quando executo o método em jrResult, a primeira vez, ele roda perfeitamente, mas se, dentro da mesma instância do programa, eu o executar a segunda vez, recebo um erro de Access Violation.
Não sei se fui bem claro no exemplo, mas se alguém tiver alguma ideia do que possa ser...
Obrigado, Gabriel
Gabriel Fabrega
Curtidas 0