Al intentar introducir un nuevo registro en una tabla me da el siguiente mensaje:
firebird_sdbc error:
*violation of PRIMARY or UNIQUE KEY constraint “INTEG_11” on table “Tratamientos HOM”
*Problematic key value is (“ID” = 19)
caused by
‘isc_dsql_execute’
Parece como si tratara de escribir encima de un registro ya existente, en lugar de incorporar uno nuevo a la tabla.
¿Alguna idea de como solucionarlo?
No, no esta tratando de escribir en otro registro, el error es claro, un ID si el campo esta identificado como único, no puede repetirse, simplemente se esta violando una regla. ¿Como estas introduciendo el nuevo registro?, ¿es una base de datos migrada de la versión anterior de Base?, si puedes mostrar la estructura de la tabla “Tratamientos HOM”, mejor, si no tienes datos privados, la base para verificarla.
Sí, es una base de datos migrada de la versión anterior de Base y de HSQLDB a Firebird. En la versión anterior funcionaba muy bien, pero desde que he migrado me crecen los enanos…
Ahora al intentar abrir la BD para copiarte la estructura me da este error
firebird_sdbc error:
*connection shutdown
caused by
‘isc_service_attach’
Ya no sé qué hacer…
Hola,
El problema radica en la conversión. El sistema no establece correctamente el siguiente incremento automático. He publicado una respuesta anteriormente en el foro de inglés aquí:
Editar (básicamente información de otra publicación):
Durante la conversión, el incremento automático no se configuró correctamente. Puede configurar esto con una instrucción SQL.
Haga una copia de seguridad de su .odb en caso de problemas creados. Obtenga el mayor valor actual de la clave. Puede obtener ejecutando la consulta (espero que la traducción sea buena):
Select MAX("ID") from "Tratamientos HOM"
Luego, usando ese valor, desde el menú en la pantalla principal de .odb, Herramientas-> SQL … ingrese:
ALTER table "Tratamientos HOM" alter "ID" restart with NNNN;
donde NNNN es el valor de la clave primaria más alta obtenida.
Prueba de insertar un nuevo registro.
¡Ahora sí funciona! Muchísimas gracias a todos y en especial a Ratslinger. Estaba a punto de tirar la toalla.