Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Providers
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-02-2008
Aldo Aldo is offline
Miembro
 
Registrado: ene 2004
Posts: 46
Poder: 0
Aldo Va por buen camino
TSocketConnection y error "Interface not supported"

Hola a todos.

Os pongo en antecedentes. Es primera vez que estoy haciendo una aplicación en tres capas y me he decidido por probar a hacerlo con TSocketConnection en vez de con TDCOMConnection para evitar en el futuro los problemas típicos de seguridad en la red y temas relacionados con Cortafuegos, etc.

Estoy haciendo esta aplicación en Delphi 5 y tengo en la capa intermedia un Servidor TRemoteDataModule que tiene un método que se llama Connect con varios parámetros su declaración es la siguiente:
Código Delphi [-]
function Connect(const szUserName, szPassword: WideString; out pErrorMessages: ErrorMessages): HResult; safecall;

donde el parámetro pErrorMessages es una estructura en la que devolver los posibles errores que se pueden haber originado en el servidor de capa intermedia, su declaración es la siguiente:
Código Delphi [-]
ErrorMessages = packed record
    nAppErrorCode: Integer;
    szAppErrorMessage: WideString;
    nOtherErrorCode: Integer;
    szOtherErrorMessages: WideString;
  end;

Ahora bien. El error se produce en la aplicación cliente cuando intenta ejecutar el método Connect que me devuelve el siguiente mensaje de error Interface not supported. OJO. Este error solo dá cuando lo intento ejecutar con la conección establecida con el componente TSocketConnection, porque con el componente TDCOMConnection se ejecuta perfectamente.

El ejemplo del llamado en ambos casos es el siguiente:
Ejemplo con TDCOMConnection
Código Delphi [-]
var
   pErrorMessage : ErrorMessages;
   szUserName    ,
   szPassword    : WideString;
begin
   szUserName    := '';
   szPassword    := '';

   DCOMConnection1.Connected := True;
   if DCOMConnection1.Connected then
      if Failed( ( DCOMConnection1.GetServer as IProgramaciones ).Connect( szUserName, szPassword, pErrorMessage ) ) then
         ShowMessage( 'error' );

Ejemplo con el TSocketConnection
Código Delphi [-]
var
   pErrorMessage : ErrorMessages;
   szUserName    ,
   szPassword    : WideString;
begin
   szUserName    := '';
   szPassword    := '';

   SocketConnection1.Connected := True;
   if SocketConnection1.Connected then
      if Failed( ( SocketConnection1.AppServer as IProgramaciones ).Connect( szUserName, szPassword, pErrorMessage ) ) then
            ShowMessage( 'error' );

Obviamente la aplicación ScktSrvr.exe se está ejecutando en el sitio donde se está ejecutando el servidor de capa intermedia y la aplicación de capa intermedia está registrada también.

Concretando, mi pregunta es ¿Qué puede estar pasando para que me dé ese error solo cuando utilizo el componente TSocketConnection y no con el TDCOMConnection?

¿Puede alguien ayudarme y orientarme un poco referente al tema ?

Agradecería también si alguien tiene algún ejemplo de aplicación en tres capas usando TSocketConnection me lo haga llegar a mi dirección de correo xxx@xxx.com ¡no es válido pedir respuestas por correo!

Os agradezco de antemano el tiempo prestado por ayudarme a encontrar una respuesta para mi problema.

Última edición por jachguate fecha: 21-02-2008 a las 18:14:01. Razón: quitar dirección de correo
Responder Con Cita
  #2  
Antiguo 13-03-2008
Paulao Paulao is offline
Miembro
 
Registrado: sep 2003
Ubicación: Rua D 31 Casa 1 - Inhoaíba - Rio de Janeiro - RJ - Brasil
Posts: 637
Poder: 21
Paulao Va por buen camino
Mira, el problema estas en su archivo _TLB. Voy a mandar a ud um ejemplo, pero lo hare por el foro, ok? Pero no es posible ahora. Mañana o despues te lo mando.
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
Delphi 5.0 / Firebird 2.0 - Error: Interface not supported RicardoG Conexión con bases de datos 0 19-10-2007 17:39:12
"connection rejected by remote interface" Gigabyte1024 Conexión con bases de datos 3 29-08-2007 06:27:48
Necesito llamar a métodos de clases "hija" desde su clase "padre" Flecha OOP 17 20-04-2007 00:03:53
JVCL "No personalities supported" vtdeleon Varios 1 10-09-2006 22:01:44
Method "elquesea" not supported by automation object mercury2005 Providers 0 08-12-2004 22:22:29


La franja horaria es GMT +2. Ahora son las 16:56:48.


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