![]() |
Extender Servidor Datasnap y Firedac
Hola amigos,
Hace mucho que no posteaba dudas en esta maravillosa gran biblioteca de conocimiento delphi, Me gustaría ver un ejemplo que enseñe como extender un servidor Datasnap utilizando modulos de datos adicionales. Me explico Cuando creamos con el asistente un servidor datasnap este nos genera dependiendo de las opciones que marquemos un modulo llamado server container que contiene los componentes del servidor datasnap para su definición y comunicación con los clientes. Otro modulo llamado ServerMethods para colocar ahí los componentes de acceso a datos. Cuando la aplicación es pequeña quizás baste con el servermethods para colocar los componentes que se requieren pero a medida que la aplicación va creciendo y se va volviendo mas compleja, hace falta espacio para colocar componentes y se requieren otros módulos de datos. Me gustaría ver un ejemplo utilizando datatanap con módulos de datos que extiendan el espacio donde colocar componentes pero que la aplicaciones clientes lo vean como parte del mismo servidor ademas de utilizar componentes firedac con una configuración master-detail que obtenga y actualice datos desde el cliente utilizando solo la biblioteca de firedac ya que es una biblioteca multiplataforma y así actualizar los conocimientos desde ya muchas gracias :) |
He utilizado el asistente para crear un server datasnap; le he dejado tildada la opcion para inlcuir los metodos de prueba (EchoString y ReveseString)
Luego modifique la implementacion de esos dos metodos para que devuelvan tambien el nombre de la clase que "hace el trabajo":
Luego puse el server en ejecucion, y cree el cliente, simplemente con el componente TSQLConnection y puse la propiedad DriverName a "Datasnap"; por ultimo hice click derecho y seleccione "generate DataSnap client classes" Esto genera una nueva unidad con la clase proxy "TServerMethods1Client" A partir de esto, puedo escribir este codigo sencillo en el form principal del cliente:
Hasta aca es el tipico tutorial Datasnap Para agregar un nuevo modulo de datos, solamente basta con volver al projecto del servidor, agregar un nuevo TDataModule; no hay que olvidarse de la directiva {$METHODINFO}, eso te podes fijar como lo genera el asistente. Esa directiva basicamente controla que metodos se exponen y cuales no Llame a este nuevo modulo de datos TServerMethods2, que esta implementado igual que el TServerMethods1:
Volvi a mi cliente, y volvi a "generate DataSnap client classes", y en este caso la unit generada ahora 2 clases:
Asi que es muy facil modificar el codigo para usar una u otra, este es el Form de la aplicacion cliente:
Saludos |
Gracias AgustinOrtu por tu pronta y excelente respuesta :)
|
La franja horaria es GMT +2. Ahora son las 07:31:14. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi