![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Error 10054 en Firebird (y otros)
Hola,
Tengo una aplicación que ataca a una base de datos de un servidor Firebird que está en la misma máquina (localhost). A parte de esta aplicación, hay dos aplicaciones más, en el mismo ordenador, atacando la misma base de datos. Mientras que la segunda y la tercera aplicación escriben y leen valores de la base de datos, la primera aplicación sólo los lee. Y no sé porqué, pero no hay forma que esta aplicación (la "lectora") funcione correctamente: - Constantemente salen errores 10054 en el Firebird.log, lo cual no tiene mucho sentido ya que en teoría se trata de un error de red, pero las otras aplicaciones no tienen problemas, y todo está en local. - Tambien ha salido el error "invalid transaction handle (expecting explicit transactin start)". Esto tampoco tiene mucho sentido ya que no hago ninguna query en toda la aplicación... Hay una función que espera un evento de Firebird y mira el último registro de una tabla, y otro que recorre toda una tabla (16 registros) y modifica una ventana. Para el acceso a datos uso los componentes IBDAC. Estoy usando Delphi 2010, Firebird WI-V2.1.3.18195, y ya no sé que más hacer... Ah, al principio estos errores ocurrían al principio de abrir la aplicación, cuando después de abrir la conexión a la base de datos se intentaba abrir una tabla para leer una variable. He puesto que esta tabla se lea más tarde, y ahora sólo falla cuando se recibe un evento del Firebird y se intenta abrir otra tabla... Si me podeis ayudar me hareis un favor, ya que estoy negro con este tema... ![]() Saludos, Marc |
#2
|
||||
|
||||
Hola, seguramente tienes un problema con la tarjeta de red, el cable, la conexión de ese equipo al router, etc.
Cita:
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#3
|
|||
|
|||
Pero es que las 3 aplicaciones estan en la misma máquina, así cómo el servidor Firebird... Por tanto, las comunicaciones no salen del ordenador. Y de todas formas, solo falla uno de los programas, no todos...
|
#4
|
||||
|
||||
Pues no sé qué decirte, eso lo dicen ellos, los de firebird.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#5
|
||||
|
||||
¿ Las tres aplicaciones son tuyas ?.
¿ Todas utilizan los mismos componentes, misma cadena de conexión, misma librería cliente firebird, etc. ... ?. ¿ El fallo está solo al leer esa tabla, o también falla en otras tablas ?. Salutacions.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
#6
|
|||
|
|||
Cita:
- Si, las 3 aplicaciones son mías. - Todas usan las librerías IBDAC, el mismo GDS32.DLL, la misma cadena de conexión, etc. - El fallo ahora ocurre sólo al leer una tabla en concreto, pero antes pasaba con otra (la que abría inmediatamente después de abrir la conexión). Estoy todavía mirandolo, y por lo que parece (pero no estoy seguro) el problema está en que se cierra la conexión con la bb.dd. No sé, es un follon de narices... Saludos, Marc |
#7
|
|||
|
|||
Había un tercer error que me sale mucho menos, pero siempre en el mismo punto (abrir una tabla y situarme en el último registro).
El error es "Error reading data from the connection". |
#8
|
||||
|
||||
Tiene pinta de estar dañada la base de datos, por qué no haces un backup/restore, por si acaso.
Yo haría lo siguiente:
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#9
|
||||
|
||||
Puede ser una corrupción en los sectores de esa tabla, como dice Casimiro, o bien podría ser un bug en las IBDAC para Delphi 2010 (Delphi 2010 tiene cambios muy importantes en aspectos básicos como las cadenas de carácteres, y es muy posible que las versiones antiguas de IBDAC no funcionen correctamente), y que se desconecte inadecuadamente una vez realizada la conexión, y por ese dé el error de red.
¿ Las otras dos aplicaciones también estan programadas en Delphi 2010 y con la misma versión de IBDAC ?. NOTA: Respecto a "invalid transaction handle", alguna transacción tienes que tener, puesto que no se puede realizar ninguna operación en la base de datos sin realizarla dentro de una transacción. Las transacciones no son solo para escribir, también son necesarias para aislar en las lecturas de las tablas. Salutacions.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). Última edición por guillotmarc fecha: 07-05-2010 a las 19:29:45. |
#10
|
|||
|
|||
Casimiro,
El viernes hice lo que me dijiste, el backup de la base de datos y su restauración. La aplicación continua fallando de la misma forma. Gillotmarc, La versión de IBDAC que usamos es la última, para Delphi 2010. Todos los programas estan compilados en Delphi 2010 y con la misma versión de las IBDAC. Me miraré que el componente de transacciones esté configurado igual en las 3 aplicaciones, y si esto no funciona empezaré a quitar código hasta dejar lo mínimo más mínimo, a ver si así encuentro que c*** hace fallar. Saludos, y muchas gracias por vuestras sugerencias. Marc |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Socket Error # 10054 con TIdHTTP | rolandoj | Internet | 10 | 19-01-2012 15:45:11 |
error 10054 en firebird | gmontes | Firebird e Interbase | 2 | 23-06-2008 21:27:38 |
Sobre el socket error #10054 | fer21unmsm | Varios | 4 | 27-03-2007 17:12:00 |
Error 10054 de Firebird | Durbed | Firebird e Interbase | 3 | 04-09-2006 12:25:42 |
Unknown win32 error 10054 | ElCherchu | Conexión con bases de datos | 6 | 14-07-2006 02:38:43 |
![]() |
|