Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-07-2013
DamianG DamianG is offline
Miembro
 
Registrado: mar 2008
Posts: 95
Poder: 17
DamianG Va por buen camino
Error reading data from the connection...

Hola, el error ya se que estuvo tratado y todos los comentarios son que el problema es en la placa de red del cliente, cable o placa de red del servidor y que tengan solo el protocolo tcp/ip porque si esta el netbios puede dar problemas...

Retomo y copio parte del log de firebird con lo que me sale:

SRVLRS Tue Jul 09 10:37:13 2013
INET/inet_error: read errno = 10054


SRVLRS Tue Jul 09 10:37:13 2013
Unable to complete network request to host "srvlrs".
Error reading data from the connection.


SRVLRS Tue Jul 09 11:19:32 2013
INET/inet_error: read errno = 10054


SRVLRS Tue Jul 09 11:19:32 2013
Unable to complete network request to host "srvlrs".
Error reading data from the connection.


SRVLRS Tue Jul 09 12:23:13 2013
INET/inet_error: read errno = 10054


SRVLRS Tue Jul 09 12:23:13 2013
Unable to complete network request to host "srvlrs".
Error reading data from the connection.

Mis pregutas son:

1) Como me puedo dar cuenta cual maquina es la que esta generando el problema en una red?, hay forma?
2) Pueder ser que sea una consulta la que genere el problema, generalmente me da la impresion que pasa con una consulta de articulos que realizo en el sistema, la transcribo por si alguien puede darme una pista:

NOTA: Esta consulta se realiza en el "onchange" de un edit (el fin es hacer busquedas y filtrar segun lo que van escribiendo)

Código Delphi [-]
comando := 'select a.CODART,' + 'a.CODRUB,' + 'a.DESCRI,' + 'a.UNIDAD,' + 'rubros.codsub,' +
     'a.PUNPED,' + 'a.TASA1, ' + 'a.TASA2, ' + 'a.HABILI,' + 'a.TOTRUB,' +
     'a.TOTDIV,' + 'a.CODFAB,' + 'a.AVIPUN,' + 'a.AVINEG,' + 'a.CANTID,' +
      'a.CANCOM,' + 'a.CANDIS,' + 'a.CANPED,' +
      'a.CANTI2,' + 'a.CANTI3,' + 'a.CANTI4,' + 'a.CANTI5,' + 'a.IMAGEN,' +
     'a.FPREC1,' + 'a.FPREC2,' + 'a.FPREC3,' + 'a.FPREC4,' + 'a.FPREC5,' +
     'a.FPREC6,' + 'a.CUSER1,' + 'a.CUSER2,' + 'a.CUSER3,' + 'a.CUSER4,' +
     'a.CUSER5,' + 'a.CUSER6,' + 'a.UTILID,' + 'a.UTILI2,' + 'a.UTILI3,' +
     'a.UTILI4,' + 'a.UTILI5,' + 'a.CODART2,' + 'a.CODOTR,' + 'a.COSTOCD,' +
     'a.COSTOVV,' + 'a.COSTOBE,' + 'a.COSTOBG,' + 'a.COSTOBK,' + 'a.COSTO,  ' +
      'a.ELPREC1,' + 'a.ELPREC2,' + 'a.ELPREC3,' + 'a.ELPREC4,' + 'a.ELPREC5,  ' + 'a.ELPREC6,  ' +
      'a.TASAIB, ' + 'a.PREC1,  ' + 'a.PREC2,  ' + 'a.PREC3,  ' + 'a.PREC4,  ' +
     'a.PREC5,  ' + 'a.PREC6,  ' + 'a.PREC7,  ' + 'a.PREC8,  ' + 'a.PREC9,  ' + 'a.PREC10,  ' +
     'a.CANTI6, ' + 'a.CANTI7, ' + 'a.CANTI8, ' + 'a.INFUTI, ' +
     'a.TALLE,  ' + 'a.COLOR,  ' + 'a.CODBAR, ' + 'a.NROIMP, ' + 'a.PRESU20,' +
     'a.PRESU25,' + 'a.PRESU28,' + 'a.PRESU30,' + 'a.PRESU40,' +
     'a.COSSINIVA,' + 'a.D1,     ' + 'a.D2,     ' + 'a.D3,     ' +     'a.D4,     ' + 'a.D5,     ' + 'a.IMPINT,' + 'a.FLETE,' +
     'a.PRESULU,' + 'a.COSSIN,' + 'a.PRECOM,' + 'a.P1M,' + 'a.P2M,' + 'a.P3M,' +
     'a.P4M,' + 'a.P5M,' + 'a.PFINAL,' +
      'rubros.descri as desrub, fabrica.descri as desfab, otrcla.descri as desotr FROM articulo a ' +
      'left join rubros  on a.codrub = rubros.codrub ' +
     'left join fabrica on a.codfab = fabrica.codfab ' +
     'left join otrcla  on a.codotr = otrcla.codotr ';
    if xhabili = 'Activo' then
     comando := comando + 'where a.habili = ''S'' ';
    if xhabili = 'Inactivo' then
     comando := comando + 'where a.habili = ''N'' ';
    if xcampo <> '' then
   begin {    if not xfillike then 
      comando := comando + 'and (a.' + xcampo + ' starting with :' + xcampo + ' '
     else
       comando := comando + 'and (a.' + xcampo + ' containing :' + xcampo + ' ';
      comando := comando + 'or cast(a.codbar as varchar(50)) = :' + xcampo + ') ';}
      if not xfillike then
       comando := comando + 'and (a.' + xcampo + ' starting with ''' + xfildes + ''' '
     else      
  comando := comando + 'and (a.' + xcampo + ' containing ''' + xfildes + ''' ';
      comando := comando + 'or cast(a.codbar as varchar(50)) = ''' + xfildes + ''') ';
    end;
    if xmanfilbus then
   begin
     if xfilrub <> '' then
       comando := comando + 'and a.codrub = ''' + xfilrub + ''' ';
      if xfilfab <> '' then
       comando := comando + 'and a.codfab = ''' + xfilfab + ''' ';
      if xfilotr <> '' then
       comando := comando + 'and a.codotr = ''' + xfilotr + ''' ';
   end;
    if xorden = 'A' then
     comando := comando + 'order by a.descri';
   if xorden = 'N' then
     comando := comando + 'order by a.codart';
   if xorden = 'F' then
     comando := comando + 'order by a.codart2';
     datafb.query_articulo.Sql.text := comando;
    datafb.query_articulo.Open;

Acepto criticas

Muchas gracias!

Última edición por Casimiro Notevi fecha: 11-07-2013 a las 17:30:22.
Responder Con Cita
  #2  
Antiguo 11-07-2013
cointec cointec is offline
Miembro
 
Registrado: jul 2004
Ubicación: Alicante-España
Posts: 76
Poder: 20
cointec Va por buen camino
Hola, imagino que utilizas classic/superclassic server por los mensajes de Firebird.log.

El problema se puede producir por 2 causas.

1. No cerrar correctamente la conexión con la base de datos.
2. Perdida de conexión de red de un ordenador.

El punto 1 es fácilmente reproducible, abriendo tu aplicación y cerrándola matando el proceso. A mi se me producía habitualmente con el cliente .net de Firebird, en su versión 2.0. El pool de conexiones no cerraba correctamente las conexiones tras un tiempo de inactividad.

Me extraña que el problema sea por el query, ya que sería un indicador de algún problema con la base de datos y junto al log de pérdida de conexión debería aparecer algún otro mensaje. También el usuario, vería una pérdida de conexión con la base de datos en el momento de ejecutar el query.

Revisa http://tracker.firebirdsql.org/browse/CORE-4129 y http://tracker.firebirdsql.org/browse/CORE-2493. Lo he solicitado recientemente ya que antes utilizaba interbase y era de utilidad ver el usuario y el nombre de máquina donde se producían las desconexiones.

Imagino que sí se votan, se podrán incorporar a versiones anteriores a 3.0 de Firebird.
__________________
Un saludo, Jesus García
Responder Con Cita
  #3  
Antiguo 11-07-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.022
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Una cosa son los problemas físicos (hardware); otra cosa es tu código, que puede estar bien o mal; y otra distinta es la forma en que "programas".

Deberás "desmenuzar" el problema poco a poco, empezar por una cosa y luego a otra.
Pero primero de todo, arregla la parte hardware.

Por cierto, no hace falta hacer esas "sumas" de cadenas, puedes escribirlas seguidas:
Código Delphi [-]
comando := 'select a.CODART,' + 'a.CODRUB,' + 'a.DESCRI,' + 'a.UNIDAD,' + 'rubros.codsub,' +      'a.PUNPED,' + 'a.TASA1, ' + 'a.TASA2, ' ...
Código Delphi [-]
comando := 'select a.CODART, a.CODRUB, a.DESCRI, a.UNIDAD, rubros.codsub, a.PUNPED, a.TASA1, a.TASA2' ...
Responder Con Cita
  #4  
Antiguo 11-07-2013
DamianG DamianG is offline
Miembro
 
Registrado: mar 2008
Posts: 95
Poder: 17
DamianG Va por buen camino
Hola cointec, lo que quise poner en el punto 1, si en el log hay forma de indicar la ip o nombre de la donde se genera el error.

Y mi duda con el query es porque lo uso en un campo edit en el evento onchange, ahi hago la consulta repetidamente para filtrar por descripcion con STARTING WITH, pienso: eso no le generera problema al servidor y se genera el inconveniente?.

Puede tener algo que ver los caracteres por ej / - o algun otro simbolo?

Planteo esto por lecturas que estoy buscando en distintos foros.

Otro datos, la tabla que uso tiene 40000 registros.

Gracias nuevamente y saludos
Responder Con Cita
  #5  
Antiguo 11-07-2013
DamianG DamianG is offline
Miembro
 
Registrado: mar 2008
Posts: 95
Poder: 17
DamianG Va por buen camino
Hola Casimiro, hace rato vengo buscando este problema y no puedo encontrar solucion... Sospecho de algun mal diseño de la consulta o uso de la misma que puse en msj anterior, vos descartas que pueda generar problema la consulta o alguna consulta?.

Pongo las sumas de cadenas en mi prog para ver un campo de bajo de otro.

Saludos y gracias
Responder Con Cita
  #6  
Antiguo 11-07-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.022
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Reitero lo dicho, desmenuzar el problema y empezar por lo mínimo.
Cambias el select por algo simple:

Código SQL [-]
select first 10 campo1,campo2,campo3 
from tabla
where campo1 containing :variable
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Error Reading JDBProgress.SessionName ($251E) klionsis Varios 20 29-03-2011 18:33:28
error writing data to the connection nabucodonosor Conexión con bases de datos 12 02-02-2011 23:14:54
Sólo para expertos: "Error reading iError.Picture.Data:Out of system resources" sami76 Varios 2 04-10-2007 14:53:31
error reading statusbar.left dandia28 Conexión con bases de datos 0 23-06-2007 03:07:04
Error writing data to the connection. defcon1_es Firebird e Interbase 1 15-02-2005 11:36:36


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


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