ORMBr Fórum - Seja bem vindo
Datasnap Exemplo - Versão de Impressão

+- ORMBr Fórum - Seja bem vindo (https://www.ormbr.com.br/forum)
+-- Fórum: Fórum ORMBr - Aberto (https://www.ormbr.com.br/forum/forumdisplay.php?fid=1)
+--- Fórum: RESTFull DataSnap (https://www.ormbr.com.br/forum/forumdisplay.php?fid=20)
+--- Tópico: Datasnap Exemplo (/showthread.php?tid=64)



Datasnap Exemplo - Gedeba - 11-03-2019

Bom dia Isaque,
desculpa a insistência... estou estudando os exemplos via firedac, na pasta datasnap tem o cliente e o servidor o servidor esta compilando normalmente mas quando tento executar o cliente da o erro Unit 'firedac.stan.exprfuncs' not found. Fui no exemplo e coloquei a unit no form3 e ainda da o erro....

o erro ocorre quando tento executar esta linha
oDataSnapMaster := TContainerRESTFDMemTable<Tmaster>.Create(FDMaster);

No seu exemplo vc tem um servidor comum usando  fdconnection, usando os métodos no servermetodos insert update e delete e busca tem como no lado cliente trabalhar com objeto puro no exemplo vc utiliza o fdmentable...  e vc tem um exemplo usando objeto puro cliente/servidor mas passando um fdconnection como parametro para conexao com  banco.  tem como usar o cliente puro sem passar um fdconnection... este exemplo esta ok.. executando sem erro...

Desde já agradeço a atenção e o compartilhamento de informações e do projeto.

Geraldo.


RE: Datasnap Exemplo - Isaque Pinheiro - 12-03-2019

(11-03-2019, 11:59 AM)Gedeba Escreveu: Bom dia Isaque,
desculpa a insistência...  estou estudando os exemplos via firedac, na pasta datasnap tem o cliente e o servidor o servidor esta compilando normalmente mas quando tento executar o cliente da o erro Unit 'firedac.stan.exprfuncs' not found. Fui no exemplo e coloquei a unit no form3 e ainda da o erro....

o erro ocorre quando tento executar esta linha
oDataSnapMaster := TContainerRESTFDMemTable<Tmaster>.Create(FDMaster);

No seu exemplo vc tem um servidor comum usando  fdconnection, usando os métodos no servermetodos insert update e delete e busca tem como no lado cliente trabalhar com objeto puro no exemplo vc utiliza o fdmentable...  e vc tem um exemplo usando objeto puro cliente/servidor mas passando um fdconnection como parametro para conexao com  banco.  tem como usar o cliente puro sem passar um fdconnection... este exemplo esta ok.. executando sem erro...

Desde já agradeço a atenção e o compartilhamento de informações e do projeto.

Geraldo.
1o Você terá que ter algum componente CLIENT http para consumir o serviço
2o Consumindo o ORMBr Servidor irá te devolver um JSON, basta convertendo esse JSON no objeto que quiser, e usa-lo

Estude a Unit ormbr.session.datasnap.pas, la vc irá vê como é feito para consumir o JSON e transforma-lo em um objeto puro, como exemplo:

Código:
function TSessionDataSnap<M>.Find: TObjectList<M>;
var
 LJSON: string;
begin
 FRESTRequest.ResetToDefaults;
 FRESTRequest.Resource := '/' + FResource + '/{ID}';
 FRESTRequest.Method := TRESTRequestMethod.rmGET;
 FRESTRequest.Params.AddUrlSegment('ID', '0');
 FRESTRequest.Execute;

 LJSON := TJSONArray(FRESTRequest.Response.JSONValue).Items[0].ToJSON;
 /// <summary>
 /// Transforma o JSON recebido populando o objeto
 /// </summary>
 Result := TORMBrJson.JsonToObjectList<M>(LJSON);
end;



RE: Datasnap Exemplo - Gedeba - 12-03-2019

(12-03-2019, 07:00 AM)Isaque Pinheiro Escreveu:
(11-03-2019, 11:59 AM)Gedeba Escreveu: Bom dia Isaque,
desculpa a insistência...  estou estudando os exemplos via firedac, na pasta datasnap tem o cliente e o servidor o servidor esta compilando normalmente mas quando tento executar o cliente da o erro Unit 'firedac.stan.exprfuncs' not found. Fui no exemplo e coloquei a unit no form3 e ainda da o erro....

o erro ocorre quando tento executar esta linha
oDataSnapMaster := TContainerRESTFDMemTable<Tmaster>.Create(FDMaster);

No seu exemplo vc tem um servidor comum usando  fdconnection, usando os métodos no servermetodos insert update e delete e busca tem como no lado cliente trabalhar com objeto puro no exemplo vc utiliza o fdmentable...  e vc tem um exemplo usando objeto puro cliente/servidor mas passando um fdconnection como parametro para conexao com  banco.  tem como usar o cliente puro sem passar um fdconnection... este exemplo esta ok.. executando sem erro...

Desde já agradeço a atenção e o compartilhamento de informações e do projeto.

Geraldo.
1o Você terá que ter algum componente CLIENT http para consumir o serviço
2o Consumindo o ORMBr Servidor irá te devolver um JSON, basta convertendo esse JSON no objeto que quiser, e usa-lo

Estude a Unit ormbr.session.datasnap.pas, la vc irá vê como é feito para consumir o JSON e transforma-lo em um objeto puro, como exemplo:

Código:
function TSessionDataSnap<M>.Find: TObjectList<M>;
var
 LJSON: string;
begin
 FRESTRequest.ResetToDefaults;
 FRESTRequest.Resource := '/' + FResource + '/{ID}';
 FRESTRequest.Method := TRESTRequestMethod.rmGET;
 FRESTRequest.Params.AddUrlSegment('ID', '0');
 FRESTRequest.Execute;

 LJSON := TJSONArray(FRESTRequest.Response.JSONValue).Items[0].ToJSON;
 /// <summary>
 /// Transforma o JSON recebido populando o objeto
 /// </summary>
 Result := TORMBrJson.JsonToObjectList<M>(LJSON);
end;

Bom dia, Isaque

Vou dar uma olhada e estudar...

Obrigado


Geraldo