Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-06-2012
Avatar de Jere_84
Jere_84 Jere_84 is offline
Miembro
NULL
 
Registrado: sep 2011
Ubicación: Córdoba, Argentina
Posts: 214
Poder: 0
Jere_84 cantidad desconocida en este momento
Código Delphi [-]
ClientDataSet1.SaveToFile('file.xml',dfXML);
//Cargas el archivo en un string y lo envias aqui

Defines que el servidor pasa datos string.

y usas el metodo de LoadFromFile en el otro extremo. Listo[/quote]

Hola, muchas gracias por la respuesta gracias. guiame un poco como sera esto de cargar el un archivo xml. ya que no tengo experiencia en este lenguaje. Del lado servidor lo que tengo es esto por ejemplo:

Código Delphi [-]
function TPLDBVALIDACION.DatoVacio(oClientDataSet: TCustomClientDataset; var oCampo: TField): boolean;
begin
 // ...
end;

Esta función la llamaría desde el lado cliente al generar la clase cliente atreves del componente SQLConnection obviamente que esto no es posible ya que este tipo de datos (TCustomClientDataset y TField) no son soportados, por lo tanto como lo arias de la forma que vos me recomendaste?

Slds.
Responder Con Cita
  #2  
Antiguo 07-06-2012
Avatar de Jere_84
Jere_84 Jere_84 is offline
Miembro
NULL
 
Registrado: sep 2011
Ubicación: Córdoba, Argentina
Posts: 214
Poder: 0
Jere_84 cantidad desconocida en este momento
Estuve probando el procedimiento y va bien pero al instante de hacer el LoadFromFile me da una excepción donde enuncia que no se puede abrir el archivo "C:\Users\..." (toda la ruta exacta en donde esta ubicado). Luego formula: El sistema no puede encontrar el archivo especificado. todo en la misma notificación. pero resulta raro que no lo localize siendo que la dirección que figura es exacta.

Código Delphi [-]
  vClientDataSet:= TCustomClientDataset.Create(nil);
  vClientDataSet.LoadFromFile(archivo); <----------------- Acá.
  vClientDataSet.Open;
Responder Con Cita
  #3  
Antiguo 08-06-2012
Avatar de StartKill
StartKill StartKill is offline
Miembro
 
Registrado: ene 2004
Posts: 299
Poder: 23
StartKill Va por buen camino
Hola Jere_84
Vamos a guiarnos por la sugerencia de mamcx, que está muy buena

Antes de nada unas palabras...: "El poderoso Datasnap que acorta distancias"

Jere_84 dice:
Cita:
Hola Club, En mi aplicación Datasnap quiero hacer una función del lado servidor que tome como parámetro un objeto tipo TClientDataSet y otro tipo TField, el problema es que aparentemente y no se bien el porque pero así parece en la ayuda Delphi, solo soporta entre las capas los siguientes tipos de datos, algo que resulta bastante limitado. .....
mamcx responde a la duda, solo vamos tomar la solución que él dá: (al margen de la explicación que nos dió, corta y buena)
Cita:
AFORTUNADAMENTE ClientDataset permite guardar datos en un stream/xml:

http://stackoverflow.com/questions/3...xml-contents-i

Código Delphi [-]
ClientDataSet1.SaveToFile('file.xml',dfXML);
//Cargas el archivo en un string y lo envias aqui
Defines que el servidor pasa datos string.
y usas el metodo de LoadFromFile en el otro extremo. Listo
Haciendo mas fácil esto:
En el lado cliente de tu aplicativo Datasnap
Código Delphi [-]
procedure TForm13.Button1Click(Sender: TObject);
var
   f: TextFile;
   xml, line: string;
   fileName: string;
begin
   fileName:= ExtractFilePath( Application.ExeName ) + 'datos.xml';
   ClientDataSet1.Open;
   ClientDataSet1.SaveToFile(fileName, dfXML);
   AssignFile(f, fileName);
   // podrias mejorar la lectura del archivo en un objeto memo
   reset(f);
   while not Eof(f) do
   begin
      ReadLn(f, line);
      xml := xml + line;
   end;
   closeFile(f);
   //-----
   //....
   xxxxx.carga(xml);  //llamas a tu método en el server; 
end;

En el lado server el método que recepciona los datos debria ser mas o menos asi:
Código Delphi [-]
procedure TServerMethodsServerProductos.carga(xml: string);
var
   f: TextFile;
   fileName: string;
begin
   fileName:= ExtractFilePath( Application.ExeName ) + 'dstos.xml';
   AssignFile(f, fileName);
   Rewrite(f);
   Write(f, xml);
   closeFile(f);
   ClientDataSet2.close;
   ClientDataSet2.LoadFromFile(fileName);
   ClientDataSet2.Open;
end;

Espero que sirva de algo el código...


Your friend

StartKill
Lima-Perú

Última edición por StartKill fecha: 08-06-2012 a las 01:18:03.
Responder Con Cita
  #4  
Antiguo 08-06-2012
Avatar de Jere_84
Jere_84 Jere_84 is offline
Miembro
NULL
 
Registrado: sep 2011
Ubicación: Córdoba, Argentina
Posts: 214
Poder: 0
Jere_84 cantidad desconocida en este momento
Hola StartKill. Gracias por el código ¿Esto anda si mi aplicación cliente y servidor se alojan en distintas terminales de una red? o ¿En el caso de que estén conectadas por internet, en redes distintas?
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Llamados a objetos entre formularios cmagno OOP 3 19-02-2010 22:41:01
se pueden pasar objetos como parametros? gabrielflowers PHP 1 01-04-2009 18:58:16
Cliente / Servidor carlosro_ec C++ Builder 2 11-12-2005 17:06:14
Cliente/Servidor Juvenal Varios 1 02-03-2005 21:27:43
BD en Cliente-servidor Phacko Conexión con bases de datos 0 18-08-2004 00:03:41


La franja horaria es GMT +2. Ahora son las 19:55:34.


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