error raro en firebird
tengo una tabla con varios campos, por ejemplo clientes con los campos codigo, nombre e id_localidad. ejecuto la siguiente consulta: select * from clientes where id_localidad = 5000 y deberia devolverme 3 registros pero me devuelve 2, el que no me devuelve tiene el valor 5000 en el campo, pero como que no lo lee. me ocurre con registros nuevos, en algun registro cada tanto. alguna idea de que puede ser?
|
Hola...
Transacciones... El problema está a veces en las transacciones... en la aplicación cliente puede que dieron de alta a un cliente nuevo, pero la transacción sigue activa y mientras esta no se aplique, los otros clientes no verán los registros más nuevos... Saludos... |
son registros de ventas, el error me aparece cuando hago la consulta dias despues, en los listados de venta por dia. cuando me pasa eso reemplazo manualmente el valor por el mismo, pero lo escribo yo arriba, desde la base directamente, y se soluciona, como si hubiera basura en el dato que no permitiera la compracion
|
El tipo del campo sea double precision?
Si es así, puede ser que donde ves 5000 en realidad haya 5000.0000001. En este caso se soluciona cambiando el tipo a integer. También puedes probar :
Si el campo es varchar, puede ser que haya un espacio delante o detras del valor. Se solucionaría "trimando" la cadena antes del insert/update (trim(id_localidad)) |
el campo es integer. creo que el problema debe estar en como el motor de firebird guarda el valor, porque a medida que la base de datos crece en tamaño (o la tabla) se empieza a repetir mas seguido, porque no se modifico en nada el codigo ni la base de datos. estuve investigando en paginas pero no se como llamarlo al error. gracias por el interes
|
versión de Firebird, Dialecto y por si acaso... componentes de acceso.... por favor ;).
Saludos |
Debo decir en defensa de firebird que nunca he visto nada parecido, y creeme que he trabajado con bases de datos de tamaño considerable (millones de registros).
Hasta luego. ;) |
También se me ocurre que la base de datos pueda estár dañada.
Prueba a hacer un backup/restore Prueba a hacer un gfix Prueba a quitar el índice sobre ese campo y volver a crearlo. Yo trabajo con bases de datos de 4.5Gb y no he tenido ningún problema con integer's. Yo los utilizo mucho para unir cabecera/detalle de tablas. |
Muchas gracias por el interes. Voy a probar todas las sugerencias. Por lo pronto el backup/restore no funciono. Voy a seguir con las demas. Nuevamente muchas gracias
|
Al final, no dejes de comentarnos cuál fue el problema, por favor.
Saludos. Al. |
Hola,
Tengo que decir al igual que "jachguate", que eso no tiene sentido alguno. "leo_037", estas completamente seguro que el tipo de campo es Integer? El problema no estará en la consulta que realizas? un saludo. |
La franja horaria es GMT +2. Ahora son las 07:53:35. |
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