FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Consultas en cliente movil a un server Datasnap
Estimados.
Estoy realizando pruebas con los servidores DataSnap y aplicaciones mobiles. He visto casi todos los videos y ejemplos que hay los cuales me han funcionado, pero hasta ahora no he logrado hacer lo siguiente, necesito hacer consultas a "demanda" contra mi server dsanp y por lo que he visto hasta ahora, hay que "crear" las consultas previamente en el server para que pueda "publicarlas" al cliente. O sea.. tengo el ds server con una FDConnection, una FDQuery y un TDataSetProvider. Me conecto a mi bd sin problemas. Por otro lado tengo mi cliente movil con los componentes TSQLConnection ( apuntando al dnsap) , un DSProviderConnection y un TClientDaset ( apuntando al TDataSetProvider del server ). Mi problema y aqui el motivo de la pregunta es como puedo hacer x ej. de agregar un tedit en el form principal del cliente movil y obtener un dataset de una tabla cualquiera y obviamente asignarle el resultado a otros tedits. Se que debo utilizar parametros pero no me doy cuenta como y donde se lo indicio para que el server lo tome y me devuelva la respuesta que necesito. Se entiende? Los componentes que uso en el cliente son los que deberia usar? Uno esta acostumbrado a realizar consultas de ese tipo y con joins de varias tablas en aplicaciones comunes de escritorio pero con las moviles y los datasnap me las estoy viendo dificil. Se puede hacer este tipo de consultas ??? Se agradece cualquier luz en el camino.. Saludos. |
#2
|
|||
|
|||
Hola, hay varias formas de hacerlo, yo lo manejo de la siguiente manera:
Del lado del servidor datasnap solo dejo la conexión y el dataset (Query o Table) enlazado a la conexion. Ejemplo: Creo una funcion que se llama lista_estados que recibe de parametro una cadena con el nombre del pais sobre el cual deseo obtener el listado de los estados y el resultado lo regreso en un dataset
De lado del cliente móvil agrego: TSQLServerMethod.- lo nombro sm_estados y asocio las propiedades: SQLConnection conexion_al_servidor_datasnap ServerMethodName TServerModule.lista_estados Params Nos aparecen 2 parametros: Pais (Entrada) y ReturnParameter (salida). Asociamos el tipo ftWideString al parametro Pais TDatasetProvider.- lo nombro dsp_estados y le asocio en la propiedad Dataset el nombre de mi servermethod (sm_estados). TClientDataSet .- lo nombro cds_estados y le asocio en la propiedad ProviderName el nombre de mi datasetprovider (dsp_estados) Finalmente, hago mi consulta: El resultado lo tengo en cds_estados y lo visualizo donde quiera. Saludos y espero sea lo que necesitas. Última edición por ecfisa fecha: 02-10-2014 a las 00:32:15. Razón: etiquetas |
#3
|
||||
|
||||
Gracias Edgard por responder.
Ahora mi pregunta es, segun tu experiencia, es necesario definir previamente todas las consultas en el ds server antes de poder "usarlas" desde el cliente ? En otras palabras, es posible desde el cliente crear las consultas ( querys ) que necesite y que el ds server me responda ??? Como ?? Mil gracias Saludos cordiales. |
#4
|
||||
|
||||
Buenas, esto no es una critica, solo expongo mi punto de vista al trabajar con datasnap.
La idea del trabajo con datasnap es un escenario de cliente-servidor, en la cual el cliente es quien se adapta al servidor y no el servidor al cliente. Imaginate que el servidor lo programa otra persona y vos no tenes acceso a modificarlo o agregarle funcionalidad directamente, basicamente es un "arreglate con lo que te doy, si no lo tengo lo lamento". Cuando estas en el cliente movil el servidor deberia ser una caja negra, no sabes exactamente como trabaja, solamente sabes que le pides algo y el cumple y te devuelve. Dicho esto, yo creo que la forma correcta de trabajar con datasnap, es publicando todos los metodos necesarios en el servidor y que el cliente haga los llamados correspondientes. El cliente basicamente se encarga de, pedir informacion y luego presentarla, ordenarla , formatearla, como decimos aca, ponerla pipi cucu. Saludos! |
#5
|
||||
|
||||
Exactamente, esa es la filosofía cliente/servidor.
|
#6
|
||||
|
||||
Cita:
--- P.D: Ten en cuenta que una vez tenes un servidor expuesto en internet, no solo tu cliente sera el unico que exista. Estas abriendote a que te envien datos/comandos maliciosos (y ademas, tampoco debes confiar en *tu propio* cliente: Lee sobre injeccion de sql en google!)
__________________
El malabarista. |
#7
|
||||
|
||||
Cita:
edn.embarcadero.com/article/41267 Saludos! |
#8
|
||||
|
||||
Muchas gracias a todos por sus respuestas. Me han dado muchas ideas y sugerencias.
Saludos. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Servidor y cliente DataSnap | cmfab | Varios | 9 | 11-09-2014 15:03:27 |
Ejemplo de un Cliente/Servidor Datasnap? | kaiserilich | Conexión con bases de datos | 2 | 30-06-2014 16:21:49 |
Datasnap en el cliente da error | tulio | Desarrollo en Delphi para Android | 12 | 10-06-2014 16:28:00 |
Datasnap y cliente android - Problema al conectar | vicens22 | Desarrollo en Delphi para Android | 8 | 04-12-2013 10:13:28 |
Cliente/servidor o Datasnap u otros | jgutti | Varios | 2 | 23-12-2010 17:54:21 |
|