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 19-09-2008
maurogambo maurogambo is offline
Registrado
 
Registrado: jul 2004
Posts: 6
Poder: 0
maurogambo Va por buen camino
Problema con aplicacion multicapa

Hola:

Estoy implementando una aplicacion multicapa con Delphi 2007. Bien, hasta ahora he hecho lo siguiente:

1. Primero, diseñé un servidor de aplicaciones DCOM, creando una aplicación VCL y utilizando el Modulo de Datos Remoto (Remote Data Module) con la idea de ejecutarlo en una maquina remota que será utilizada como servidor. Utilicé los componentes de la paleta Interbase para conectar con una base de datos Firebird 2.0, que se encuentra en la misma maquina servidora, lo cual se realizó sin ningún problema. (Componentes utilizados: TIBDatabase, TIBTransaction, TIBQuery y TDataSetProvider).

2. A continuación, creé la aplicación cliente con los componentes TClientDataSet y TDCOMConnection y los vinculé.

Ahora bien, para que TClientDataSet lea los datos del TDataSetProvider (que se encuentra en el servidor remoto), es necesario configurar el TDCOMConnection correctamente y definir las propiedades "ServerName" y "ServerGUID" (ésta última se obtiene automáticamente al configurar la primera). Pues bien, según he leido en la ayuda de Delphi, es requisito indispensable registrar la aplicacion servidor en Windows, para que el cliente pueda conectarse correctamente. En versiones anteriores a Delphi 2007, la aplicación se registraba en la computadora local cuando se corría en programa, en cambio, ahora, la aplicacion solo se registra cuando se coloca como parámetro '/regserver'.

Como prueba, registré la aplicacion servidora en la misma computadora donde corrí el programa cliente, el cual se conectó sin inconvenientes.

El problema se presenta cuando instalo el servidor de aplicaciones DCOM en la máquina remota donde esta la base de datos FireBird. El servidor funciona perfectamente, sin embargo, cuando intento conectar elcliente desde otra computadora me aparece el siguiente error en la aplicacion cliente: 'El servicio RCP no esta disponible'. En la propiedad 'ComputerName' del componente TDCOMConnection he puesto el nombre de la máquina remota.

Yo creo que el error se debe a que el servidor DCOM no esta registrado correctamente en la máquina cliente, pues la ayuda de Delphi dice exactamente lo siguiente (traducido):

Cita:
TDCOMConnection utiliza DCOM para establecer la conexión inicial entre la aplicación cliente y un servidor de aplicaciones remotas. Para ello, el servidor de aplicaciones debe estar registrado en la máquina cliente.


Quisiera que alguien me dijera cómo se registra un servicio remoto en una maquina windows (XP/Vista), o me indicaran otra solucion al problema.

Si me pueden ayudar se los agradecería.
Responder Con Cita
  #2  
Antiguo 19-09-2008
Avatar de Kipow
Kipow Kipow is offline
Miembro
 
Registrado: abr 2006
Ubicación: Guatemala
Posts: 329
Poder: 19
Kipow Va por buen camino
Me imagino que igual a como lo registraste en la pc local con

Regsvr32 <ruta y nombredelejecutable>
Responder Con Cita
  #3  
Antiguo 19-09-2008
maurogambo maurogambo is offline
Registrado
 
Registrado: jul 2004
Posts: 6
Poder: 0
maurogambo Va por buen camino
Unhappy

Ya lo he probado antes y ambos procedimientos dan error:

Código:
regsvr32 //SERVIDOR\Servidor.exe   
regsvr32 //SERVIDOR\Servidor.TLB
Si registro el servidor como parametro el cliente da error (Servicio RPC no disponible):

Código:
//SERVIDOR\Servidor.exe  /regsrver
... Ya no me quedan ideas ...
Responder Con Cita
  #4  
Antiguo 19-09-2008
[Andreano] Andreano is offline
Miembro Premium
 
Registrado: sep 2006
Posts: 155
Poder: 18
Andreano Va por buen camino
Mauro,

El nuevo DataSnap en Delphi 2009 no necesita COM. en esta liga tienes un ejemplo de aplicacion DataSnap con Delphi 2000 http://cc.codegear.com/Author/38483

Saludos,
Andreano Lanusse
Embarcadero Technologies
Responder Con Cita
  #5  
Antiguo 19-09-2008
elopezf elopezf is offline
Miembro
 
Registrado: mar 2007
Posts: 15
Poder: 0
elopezf Va por buen camino
Smile

Saludos a todos.

Lo que te recomiendo es que veas los que son derechos de usuarios en el servidor.

1.- En el servidor te vas a Herramientas Administrativas
de ahi seleccionas
Servicios de componentes

Te muestra una nueva pantalla

Servicios de Componentes --> Equipos --> Mi PC -- Configuracion DCOM

Buscas el nombre de tu aplicacion o tu aplicacion servidora

Seleccionas y das click con boton derecho y Propiedades

Te aparece una pantalla seleccionas la pestanya Seguridad

Y personalidad en Permisos de Incio y Activacion agregando el grupo de usuario que quieres que tengan acceso o al usuario

Luego personalizas tambien en Permisos de Acceso de la misma forma que hiciste en el paso anterior

En estas personalizaciones marcas las casillas dandole activacion y ejecucion y acceso tanto local como remoto.

Cuando hayas terminado das aplicar y aceptar y luego prueba tu aplicacion

Espero te sirva


Ernesto Lopez
Responder Con Cita
  #6  
Antiguo 19-09-2008
Avatar de Kipow
Kipow Kipow is offline
Miembro
 
Registrado: abr 2006
Ubicación: Guatemala
Posts: 329
Poder: 19
Kipow Va por buen camino
Cita:
Empezado por maurogambo Ver Mensaje
Ya lo he probado antes y ambos procedimientos dan error:

Código:
regsvr32 //SERVIDOR\Servidor.exe   
regsvr32 //SERVIDOR\Servidor.TLB
Si registro el servidor como parametro el cliente da error (Servicio RPC no disponible):

Código:
//SERVIDOR\Servidor.exe  /regsrver
... Ya no me quedan ideas ...
El registro debe de ser en el servidor no en los clientes.
Responder Con Cita
  #7  
Antiguo 21-09-2008
maurogambo maurogambo is offline
Registrado
 
Registrado: jul 2004
Posts: 6
Poder: 0
maurogambo Va por buen camino
Registro

Cita:
Empezado por Kipow Ver Mensaje
El registro debe de ser en el servidor no en los clientes.
Pero la ayuda en delphi 2007 señala que el servidor de aplicaciones debe estar registrado en la máquina cliente para se establezca la comunicación.

Gracias.
Responder Con Cita
  #8  
Antiguo 21-09-2008
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Te recomiendo que no sigas la ruta de COM. Es muy complicada y es un lio a la hor de despliegue.

Mejor usa protocolos simples y estandares , como http y tcp-ip
__________________
El malabarista.
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
Problema con aplicación Dark_RavenM Varios 4 27-02-2008 05:10:40
Como crear aplicacion MultiCapa Delphi 2007 elopezf Conexión con bases de datos 0 06-09-2007 23:04:48
Acerca de Programacion Multicapa Jesus Armando DB2 8 13-12-2006 12:35:06
Problema con Aplicacion MDI Thales OOP 7 19-08-2005 15:31:07
Problema con mi aplicación JerS Varios 2 18-07-2005 16:33:51


La franja horaria es GMT +2. Ahora son las 16:36:07.


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