Ver Mensaje Individual
  #1  
Antiguo 11-04-2006
Avatar de Durbed
Durbed Durbed is offline
Miembro
 
Registrado: ago 2004
Posts: 166
Reputación: 20
Durbed Va por buen camino
Error al conectar con Firebird de forma Remota

Me pasa algon que a mi parecer es muyyy raro. El caso es que tengo el servidor de Firebird con las bases de datos montado en casa (para hacer pruebas), si ejecuto la aplicacion en local funciona perfectamente, el problema esta cuando conecto desde la red de la oficina. Me sale el siguiente error:

'Error reading data from the connection'

'Unable to complete network request to host "La Ip de Casa"
Error writing data to the connection
Se ha forzado la interrupcion de una conexion existente por el host remoto'

Ahora, lo mas curioso, es que antes de que salga ese error, consigo que se conecte a la base de datos y me muestre una lista con todos los usuarios, y al pedirle los datos de un usuario en concreto es donde salta el error. Tambien me conecta correctamente desde el EMS. El codigo que tengo es este:

Código Delphi [-]
//Obtengo los datos del INI para obtener el nombre de la base usuarios
  Ini := TIniFile.Create(UnidadComun.RutaINI);
  Try
    //Conecto y configuro la base de usuarios
    With DMUsuarios.IBDUsuarios Do
      Begin
DatabaseName := Ini.ReadString('SERVIDOR', 'IP', '') + ':' + Ini.ReadString('SERVIDOR', 'RUTA', '') + '\Agendas\usuarios.fdb';
        Params.Add(UnidadComun.UserName);
        Params.Add(UnidadComun.Password);
        LoginPrompt := False;
        Open;
      End;
    //Añado todos los usuarios a la lista de usuarios
    With DMUsuarios.IBQEjecutar Do
      Begin
        SQL.Clear;
        SQL.Add('SELECT LOGIN FROM USUARIOS');
        Open;
        While not Eof Do
          Begin
            CBLogin.Items.Add(FieldByName('LOGIN').AsString);
            next;
          End;
      End;
    
....

//Obtener los detalles de un usuario
      With DMUsuarios.IBQEjecutar Do
        Begin
          If DMUsuarios.IBDUsuarios.Connected Then
            Showmessage('Base usuarios conectada');
          consulta := 'Select * From Usuarios Where Login = ''' + CBLogin.Text + '''';
          SQL.Clear;
          SQL.Add(consulta);
          Open;  //Aqui salta el error
          ...
        End;
Pues a ver si alguien me puede ayudar, os pongo como estan conectados los ordenadores aunque es casi seguro que no sea de eso:
-En casa: Cable modem, es decir directamente a internet, el firewall bien configurado y el servidor corriendo como servicio en un WinXP.
-En la oficina: ADSL con un router, pero como digo con el EMS funciona bien y el servidor de FTP que tengo montado en casa tambien funciona correctamente.

Un saludo y muchas gracias aunque solo sea por leer este tocho.
__________________
Intentando hacer algo con Delphi 7 y Firebird 1.5
Responder Con Cita