Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-01-2010
ElDuc ElDuc is offline
Miembro
 
Registrado: jul 2004
Posts: 197
Poder: 20
ElDuc Va por buen camino
Consultas a un servidor de aplicaciones

Buenas tardes delphinianos.

Después de multitud de pruebas y consultas por internet he conseguido mi proposito, acceder a una base de datos que está ubicada en el server de la empresa desde mi casa.

La intención es crear un servidor de aplicaciones (por capas) de tal forma que los clientes, cuando necesitan acceder a la DB, en realidad la petición la hagan al servidor de aplicaciones y este a la DB.

Esto me permitiría mantener los clientes desconectados de la DB puediendo proteger la DB del exterior y permitiéndome hacer acciones sobre las peticiones y respuestas de los clientes desde el servidor de aplicaciones.

Para que podáis comprender mejor mi problema explicaré brevemente lo que he desarrollado:

SERVER:
He creado un proyecto y le he añadido un RemoteDataModule, en éste he incorporado un TADOConnection, un TADOQuery y un TDataSetProvider. Todo debidamente configurado y con el puerto declarado en el TADOConnection abierto.

CLIENT:
He creado un proyecto y le he añadido un TSocketConnection (porque es el único que me ha funcionado), un TClientDataSet (porque es el único que me ha funcionado), un TDataSurce y un TDBGrid, todo debidamente configurado.

TODO ESTO FUNCIONA, pero no como yo desearía, ya que me devuelve todo el contenido de la tabla que hay en la DB.

Yo necesito que me devuelva uno o varios registros en función de una consulta SQL, ya que no es lógico descargar toda la tabla para editar sólo un registro y además, si la tabla es grande, tarda una eternidad. He probado con los filtros del TClientDataSet pero igualmente carga toda la tabla aunque sòlo me muestra los registros filtrados.

Si podéis ayudarme me haréis un buen favor.
Responder Con Cita
  #2  
Antiguo 10-01-2010
Avatar de voldemmor
voldemmor voldemmor is offline
Miembro
 
Registrado: ago 2006
Posts: 232
Poder: 18
voldemmor Va por buen camino
tsocketserver

Hola amigo como te va.

La verdad de la manera que trabajas no lo he hecho y no cuento con mucha experiencia. Por lo cual espero poder ayudarete con lo que digo.

Que te parece mejor si en el server:
Inicias un socket (Tsocketserver) ni no me equivoco en el nombre del componente. que te escuche a los clientes, y acepte cadenas de texto(sentencias sql) y te envie un array de objetos o a su vez objeto a objeto.

las cadenas sql las mandas contra tu bd y las respuestas de tu bd las formates y las envias

en tu cliente:
COn tu tsocketclient te conectas a tu server(ya lo tienes), envias tus sql y recives tus objetos, los interpretas y los muestras.


Si no me equiboco hay un ejemplo que viene con delphi.

Espero todo te salga de lo mejos
__________________
tu mente es tu mas presiado tesoro, cultiva tu conocimiento
Responder Con Cita
  #3  
Antiguo 10-01-2010
ElDuc ElDuc is offline
Miembro
 
Registrado: jul 2004
Posts: 197
Poder: 20
ElDuc Va por buen camino
Question Tema pendiente

Hola otra vez,

Veo que nadie me puede ayudar, no sé si es porque no he puesto el hilo en el foro adecuado, si es asi os agradeceré que me digáis donde debo ponerlo.

Gracias.
Responder Con Cita
  #4  
Antiguo 10-01-2010
ElDuc ElDuc is offline
Miembro
 
Registrado: jul 2004
Posts: 197
Poder: 20
ElDuc Va por buen camino
Gracias voldemmor,

Me contestaste mientras yo reclamaba ayuda.

Lo probaré, pero te agradecería me indicaras como se pasan los objetos, porque yo he hecho alguna cosa con strings y arrays de bytes pero nunca con objetos (clases)

Gracias otra vez.
Responder Con Cita
  #5  
Antiguo 11-01-2010
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
Hola,
has leido estos artículos ?
http://delphiallimite.blogspot.com/s...s%20de%20datos

Por otro lado, si utilizas TADOQuery podrás ejecutar 'select * from tabla where campo=XX', con lo que filtrarías el resultado de las consultas enviado a los clientes. Lógicamente, tendrás que romperte la cabeza para que desde el cliente te indiquen los clientes que quieren ver ( 10 debería ser el máximo para aplicaciones de este calado ), para 'montar' la query en base a los datos que el cliente te haya introducido. Así, en base a parámetros o generando la query dinámicamente, reducirías el resultado de la consulta.

Espero haberte ayudado.

Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #6  
Antiguo 13-01-2010
Avatar de voldemmor
voldemmor voldemmor is offline
Miembro
 
Registrado: ago 2006
Posts: 232
Poder: 18
voldemmor Va por buen camino
con strings

hola la verdad yo tampoco he usado este tipo de conexion en delphi, en un curso de la Universidad me explicaron sobre el tema pero sobre .net 2005(que mas toca si el profe solo maneja eso jaja).

Si ya sabes usar strings que te parece si separas cada campo de tu registro mediante un caracter(, ; /) o algun otro como te acomodes.
Y en el servidor interpretas tu cadena y separas tus campos mediante ese caracte.

El orden de los campos como los envies y los recibas corre por tu cuenta.

Suerte y espero te salga todo bien
__________________
tu mente es tu mas presiado tesoro, cultiva tu conocimiento
Responder Con Cita
Respuesta



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
Tracear aplicaciones Cliente-Servidor sherlock Varios 2 16-02-2009 17:31:50
Consultas SQL con ADO en Servidor Capa Intermerdia Rockin Conexión con bases de datos 3 10-07-2008 12:08:57
Guia Aplicaciones cliente/servidor Artemix175 Servers 0 20-06-2007 15:49:40
Aplicaciones Delphi Cliente/servidor TelloClos Conexión con bases de datos 8 09-06-2003 17:12:38
Aplicaciones Cliente Servidor leury Varios 0 20-05-2003 02:43:56


La franja horaria es GMT +2. Ahora son las 16:34:35.


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