Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Desarrollo en Delphi para Android
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy


 
 
Herramientas Buscar en Tema Desplegado
  #4  
Antiguo 24-12-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Yo tengo configurado Datasnap de la siguiente manera:

En el server, tambien usamos MSSQL. No uses ADO; es lento, es inestable, nunca me gusto

Ya que tenes 10 Seattle, opta por FireDAC.

El sevidor exopne un par de metodos para obtener datos, y uno o dos para insertar/actualizar. Es muy sencillo

Todo gira en torno a la clase "TFDJSONDataSets": es decir, los clientes mandan "TFDJSONDataSets", y el server devuelve "TFDJSONDataSets"; es basicamente un DataSet codificado en json y luego en base64 para que sea lo mas rapido posible de transportar.

En el uses necesitas agregar:

Código Delphi [-]
  Data.FireDACJSONReflect,
  FireDAC.Stan.StorageJSON,

Los metodos "Get" tienen la forma:

Código Delphi [-]
function TServerMethods1.GetClientes: TFDJSONDataSets;
begin
  // refresh query
  qClientes.Active := False;
  Result := TFDJSONDataSets.Create;
  TFDJSONDataSetsWriter.ListAdd(Result, qClientes);
end;

Los metodos "Insert" tienen mas "truco". Lo que yo hago es, recibir la instancia de TFDJsonDataSets y cargarlo en un FDMemTable; de alli, la recorro y se trata de un "DataSet normal". No hay que asustarse por el "alarmante" numero de operaciones; en realidad es todo bastante rapido

Código Delphi [-]
function TServerMethods1.InsertPedidos(Pedidos: TFDJSONDataSets): Boolean;
begin
  // cabeceras
  mtPedidos.AppendData(TFDJSONDataSetsReader.GetListValue(Pedidos, 0));
  // detalles
  mtDetalles.AppendData(TFDJSONDataSetsReader.GetListValue(Pedidos, 1));

  mtPedidos.First;
  while not mtPedidos.Eof do
  begin
   { blabla }
   mtPedidos.Next;
  end;
end;

Del lado del cliente:

Código Delphi [-]
var
  MemTab: TFDMemTable;
  JsonData: TFDJSONDataSets;
begin
  MemTab := TFDMemTable.Create(NIL);
  // pedir  clientes al server
  JsonData := Client.Methods.GetClientes;

  // volcar en FDMemTable
  MemTab.AppendData(TFDJSONDataSetsReader.GetListValue(JsonData, 0));
  MemTab.Open;
end;

Espero te sirva
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Aplicacion Delphi Android - DataSnap - Linux jo3litro Desarrollo en Delphi para Android 8 11-12-2015 02:26:43
Android conexión a DataSnap mediante 3G/4G Combat-F2D Desarrollo en Delphi para Android 2 05-10-2015 07:17:01
DataSnap - Android-IOS Ricardo2010 Desarrollo en Delphi para Android 1 26-11-2014 02:08:52
ListView only display 200 records XE5, DataSnap - Android dison Desarrollo en Delphi para Android 4 02-04-2014 20:11:21
Datasnap y cliente android - Problema al conectar vicens22 Desarrollo en Delphi para Android 8 04-12-2013 10:13:28


La franja horaria es GMT +2. Ahora son las 14:16:53.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi