Club Delphi  
    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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo Hace 2 Días
usuario1000 usuario1000 is offline
Miembro
 
Registrado: Nov 2016
Posts: 38
Poder: 0
usuario1000 Va por buen camino
Datasnap Duda

Hola a todos.

TEngo una aplicación cliente-servidor (dataSnap) en delphi 10 con firebird.

Y se me ha ocurrido la maravillosa idea de que el servidor cada cierto tiempo envíe unos emails automáticamente según un filtro que debo hacer de unos registros de la base de datos.
Tengo lo siguiente en el servidor:
- ServerMethodsUnit1. (donde van todas las funciones que llamo desde el cliente).
- UPrincipal. Es la unidad donde está el formulario principal del servidor, es decir, la pantalla que se muestra cuando se ejecuta el servidor.
- ServerContainerUnit1.

Cuando desde la aplicación cliente llamo a una función del servidor no me da ningun problema.

Pero, ahora bien, he colocado un timer1 en el formulario principal del servidor(UPrincipal) y quiero llamar cada cierto tiempo a una funcion que está en ServerMethosUnit1 y no puedo me da error. ¿ cómo lo puedo hacer?.

Espero haberme explicado. GRacias.
Responder Con Cita
  #2  
Antiguo Hace 2 Días
orodriguezca orodriguezca is offline
Miembro
 
Registrado: Jan 2009
Posts: 176
Poder: 10
orodriguezca Va por buen camino
Dificil saber que puedes hacer sin que sepamos cual es el mensaje de error . De todas formas voy a suponer que es un problema de "visibilidad" debido a que la función a la que quieres llamar está definida en alguna sección private de alguna clase de la unidad ServerMethosUnit1 y no en la sección public de dicha clase. Siguiendo con la suposición, y considerando que la función a la quieres llamar es una función global (no una función definida en la clase), dicha función seguramente está definida en la implementación (invisible para cualquier otra unidad) y no en la interface de la unidad ServerMethosUnit1 (donde si puede ser accedida por otras unidades del proyecto).
Responder Con Cita
  #3  
Antiguo Hace 1 Día
iMia iMia is offline
Miembro
 
Registrado: Jul 2010
Posts: 55
Poder: 8
iMia Va por buen camino
La instancia del DSServer, se crea al conectarse un cliente. Si la ejecutas desde el propio servidor, no existe esa instancia... por lo que da error...
Por definicion, el servidor da un servicio a las apps clientes, crea una instancia y procesa sus llamadas... por si solo no debe hacer nada...

Debes crear una app cliente, que llame al servidor cada X tiempo (TTimer) para llamar a la función que envie lo mails...
Responder Con Cita
  #4  
Antiguo Hace 1 Día
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: Sep 2004
Ubicación: En algún lugar.
Posts: 28.094
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por iMia Ver Mensaje
La instancia del DSServer, se crea al conectarse un cliente. Si la ejecutas desde el propio servidor, no existe esa instancia... por lo que da error...
Por definicion, el servidor da un servicio a las apps clientes, crea una instancia y procesa sus llamadas... por si solo no debe hacer nada...
Debes crear una app cliente, que llame al servidor cada X tiempo (TTimer) para llamar a la función que envie lo mails...

Por norma debería ser así, un servidor es un servidor... y un cliente es un cliente.
El camarero (servidor) no debería enviar emails a cada rato
Responder Con Cita
  #5  
Antiguo Hace 21 Horas
usuario1000 usuario1000 is offline
Miembro
 
Registrado: Nov 2016
Posts: 38
Poder: 0
usuario1000 Va por buen camino
Gracias a todos por contestar.

Lo he solucionado sacando la definición de la función fuera de implementation y definiéndola en la interface.

Ahora, me he quedado pillado con lo que ha dicho Casimiro. Si resulta que el usuario tarda en conectarse varios días. Cómo le hago llegar los emails, si no es a través del servidor??, ya que el cliente no se conecta. Y esos email tienen que llegar aunque no esté conectado.

Saludos y gracias.
Responder Con Cita
  #6  
Antiguo Hace 20 Horas
usuario1000 usuario1000 is offline
Miembro
 
Registrado: Nov 2016
Posts: 38
Poder: 0
usuario1000 Va por buen camino
Cita:
Empezado por usuario1000 Ver Mensaje
Gracias a todos por contestar.

Lo he solucionado sacando la definición de la función fuera de implementation y definiéndola en la interface.

Ahora, me he quedado pillado con lo que ha dicho Casimiro. Si resulta que el usuario tarda en conectarse varios días. Cómo le hago llegar los emails, si no es a través del servidor??, ya que el cliente no se conecta. Y esos email tienen que llegar aunque no esté conectado.

Saludos y gracias.



Me contesto a mí mismo, porque me he dado cuenta, porque lo que debo hacer es un nuevo proyecto enlazando al servidor para solicitar los datos y a partir de ahí generar emails.


Gracias por vuestros aporte, porque me han dado el camino a seguir.


Saludos.
Responder Con Cita
  #7  
Antiguo Hace 20 Horas
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: Sep 2004
Ubicación: En algún lugar.
Posts: 28.094
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
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
DataSnap TomasChavezJ Desarrollo en Delphi para Android 4 29-01-2015 17:38:50
DataSnap y XML rchavezh Providers 5 12-07-2013 22:23:15
DataSnap o LAMP Chris Debates 70 24-07-2012 18:42:48
datasnap jgutti Varios 1 23-12-2011 14:25:20
Duda sobre DataSnap Mauro Daniel Providers 3 02-03-2011 20:07:09


La franja horaria es GMT +2. Ahora son las 14:20:29.


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