Cómo solucionar errores error que aparecen cuando se intenta abrir una tabla Paradox: Corrupt table/index header, cuando se intenta insertar un registro Key violation, errores al reestructurar (restructure) y empaquetar (pack table): Unknown internal operating system error. Algún error más como Index is out of date. Explicamos cómo solucionarlos con Datatabase Desktop (incluimos la descarga), de forma manual y con herramientas adicionales (también incluimos las descargas).

Errores Corrupt table/index header, Key violation, Unknown internal operating system en Paradox

El motor de base de datos BDE (Borland Database Engine), que está obsoleto y totalmente descontinuado, aún sigue siendo usado por algunas organizaciones y empresas, dado que era el motor por defecto para el lenguaje de programación Borland Delphi 6, 7 y otras versiones.

Se desarrollaron infinidad de aplicaciones con este lenguaje y aún quedan en activo muchas. Por ello explicamos cómo solucionar algunos errores, relativamente habituales, que se pueden producir en las tablas Paradox 7 del BDE.

Uno de los errores habituales es Key violation, que se producen cuando se intenta insertar un registro en una tabla Paradox que tiene una clave primaria (Primary Key) y ésta es de tipo autoincremento (autoincrement, en Paradox se indica con el carácter «+»):

Errores Corrupt table/index header, Key violation, Unknown internal operating system en Paradox

Otro error habitual, al abrir o acceder a una tabla Paradox (sin llegar a insertar registros), es Corrupt table/index header:

Unable to open table.
Corrupt table/index header.
File: C:\facturacion\presupuestos.db

Errores Corrupt table/index header, Key violation, Unknown internal operating system en Paradox

Y un tercer tipo de error, mucho menos habitual, se produce, cuando queremos reestructurar o compactar una tabla Paradox o incluso al hacer cualquier operación sobre ella, es Unknown internal operating system error:

Errores Corrupt table/index header, Key violation, Unknown internal operating system en Paradox

Otro error habitual es Index is out of date, que se produce cuando se intenta abrir una tabla Paradox:

Index is out of date.
Index: Factura_Numero

Copia de seguridad de las tablas Paradox

Antes de aplicar cualquier acción de este artículo, dado que son acciones que modifican estructura de la tabla y dado que sólo debemos aplicarlas en caso de errores, es muy recomendable hacer una copia de seguridad de la base de datos tal y como esté actualmente, sin usuarios conectados.

Paradox almacena los datos en ficheros .db y los índices y demás información de su estructura en ficheros .px, .yg1, .xg1, etc. Por lo tanto haremos una copia de todos los ficheros en un lugar seguro antes de aplicar cualquier acción de este tutorial.

Reparar error Unable to open table corrupt table/index header y Index is out of date

Para el error Unable to open table. Corrupt table/index header y también Index is out of date de forma manual, seguiremos los siguientes pasos.

Nos aseguraremos siempre de que no hay usuarios intentando acceder, por ello es recomendable trabajar con una copia de las tablas (que son ficheros por lo tanto fáciles de copiar).

Si no nos deja abrir la tabla, que es lo habitual con este error, tendremos que eliminar los ficheros de índices (que tienen la extensión .px, .yg1, xg1, etc.). Eliminaremos todos los ficheros de la tabla, salvo el fichero con extensión .DB, que es el que contiene los datos. Con esto eliminaremos los índices de la tabla (que luego tendremos que volver a recrear manualmente). En el ejemplo, la tabla «Presupuestos», tiene los ficheros: Presupuestos.DB, Presupuestos.PX, Presupuestos.XG0 y Presupuestos.YGO, eliminaremos todos salvo Presupuestos.DB:

Reparar error Unable to open table corrupt table/index header

Una vez eliminados los ficheros de índices, abriremos la tabla Presupuestos.DB con Borland Database Desktop, en principio debe abrirse bien tras eliminar los archivos de índices:

Reparar error Unable to open table corrupt table/index header


Tras poder abrir la tabla podremos recrear los índices, empezaremos por el más importante, la clave primaria (primary key). Para ello pulsaremos en «Table» – «Restructure…»:

Reparar error Unable to open table corrupt table/index header

En el campo que debe ser clave primaria, en el caso de la tabla «Presupuesto», el campo «Codigo», pulsaremos en la columna «Key» de este campo para que lo marque con un asterisco (*), de esta forma este campo volverá a ser clave primaria de la tabla, como lo era antes del error de corrupción. Guardaremos el cambio pulsando en «Save»:

Reparar error Unable to open table corrupt table/index header

Si tenemos más índices los iremos creando desde esta misma ventana de Restructure, en «Table properties» seleccionando «Secondary Indexes» y pulsando en «Define»:

Reparar error Unable to open table corrupt table/index header

En el caso de esta tabla, antes del error, teníamos un índice llamado presupuestos_fecha, con el campo «Fecha», por lo que lo añadiremos con el mismo nombre:

Reparar error Unable to open table corrupt table/index header

En nuestro caso el índice se llamaba «presupuestos_fecha», por lo que volveremos a introducir el mismo nombre:

Reparar error Unable to open table corrupt table/index header

Guardaremos los cambios en la tabla y se habrán regenerado los ficheros .px, .xg0, .yg0, etc.:

Reparar error Unable to open table corrupt table/index header

En el caso de no recordar o saber todos los índices que tenía la tabla, lo sencillo es iniciar la aplicación. Si la aplicación usaba algún índice que no encuentra mostrará el error indicando Index not found … o similar. Será una buena pista para crearlo con el mismo nombre que indique el error.

Reparar error Key violation en tabla Paradox

Cuando sí que nos deja abrir una tabla Paradox pero nos da el error Key violation al intentar insertar un registro, seguiremos los siguientes pasos para solucionar el problema de forma «manual». Antes de continuar, indicar que este error suele ser debido a que la tabla contiene un campo de tipo Autoincremento (+) y lo que ocurre es que el contador del último autoincremento no es correcto, por lo que al insertar un registro intenta asignar en el campo autoincremento (también campo clave primaria) el mismo valor que ya existe en un registro, por lo que muestra «Key violation».

Para solucionar este error, abriremos la tabla que muestra el error Key violation con Borland Database Desktop. Pulsaremos en «Table» – «Reestructure»:

Reparar error Key violation en tabla Paradox

Nos posicionaremos en el campo que tengamos como clave primaria, con el asterisco «*» en la columna «Key», y pulsaremos en el asterisco, para que desaparezca:

Reparar error Key violation en tabla Paradox

Una vez quitado el asterisco, modificaremos también en este campo el tipo de datos, de autoincremento «+» (que es el tipo de campo habitual que produce el error «Key violation») a I (Long Integer):

Reparar error Key violation en tabla Paradox

A continuación añadimos un nuevo campo, pulsando la tecla Insertar del teclado, le asignamos un nombre cualquiera, por ejemplo Codigo2 [1], establecemos el tipo de datos a + (Autoincremento) [2] y lo establecemos como clave primaria pulsando en la columna «Key» para que lo marque con un asterisco [3]. Se esta forma dejaremos el campo que nos sirve «Codigo», como I y sin ser clave primera y el nuevo campo Codigo2, como autoincremento y clave primaria. Marcaremos «Pack Table» [4] y pulsaremos «Save»:

Reparar error Key violation en tabla Paradox

Volvemos a acceder al menú «Table» – «Restructure» y eliminamos el campo Codigo2 añadido anteriormente que era clave primaria temporal, seleccionándolo y pulsando las teclas Control + Suprimir. Una vez eliminado este campo, volveremos a marcar como clave primera el campo «Codigo», pulsando en la columna «Key» y dejando el asterisco. También le cambiaremos el tipo de datos de nuevo a «+» (autoincremento), para dejarlo tal y como estaba inicialmente:

Reparar error Key violation en tabla Paradox


Marcamos nuevamente «Pack table» y pulsamos en «Save».

Tras hacer esta operación, ya nos debería dejar agregar registros en la tabla y el campo autoincremental volverá a coger el siguiente valor por el que fuera.

Solucionar errores diversos con utilidad externa Borland Utility

Una herramienta muy útil para solucionar numerosos errores que se producen en tablas Paradox es Borland Utility (, cuya descarga tenemos disponible en nuestra web:

Esta herramienta, que no necesita instalación, únicamente disponer de BDE instalado (Borland Database Engine). Es bastante sencilla, sólo necesita elegir un Alias o bien una tabla (explorando y buscándola en una carpeta del equipo) y pulsar en «Verificar» para comprobar si está correcta, en cuyo caso devolverá «» y en caso de que la tabla o tablas tengan algún error mostrará «Verificación No pudo ser Terminada»:

Solucionar errores diversos con utilidad externa Borland Utility

Si necesita reparación, pulsaremos en «Reconstruir». Si la reconstrucción es correcta mostrará «ReIndexación Terminada»:

Solucionar errores diversos con utilidad externa Borland Utility

Herramienta para modificar valor de campo autoincremento de tabla Paradox

Esta otra herramienta, con código fuente en Delphi 6 disponible en el sitio web, también permite reparar algunos de los errores que se producen en tablas Paradox, como el de Key violation:

  • AjpdSoft Reiniciar Autoincremento Paradox Código Fuente Delphi 6.

Esta aplicación también soluciona algunos errores más, como el mencionado anteriormente de Unknown internal operating system error.

Su funcionamiento es muy sencillo, ni siquiera necesita tener instalado BDE y funciona en sistemas operativos actuales como Windows 10 y Windows 11. No necesita instalación, únicamente realizar la descarga, descomprimir el fichero .7zip, y ejecutar el fichero resetearContadorParadox.exe. Elegiremos la tabla Paradox a la que queramos modificar el contador autoincremento e indicaremos un nuevo valor (es recomendable abrir la tabla y ver por qué valor vamos, para poner un más). Pulsaremos en «Resetear autoincremento»:

Herramienta para modificar valor de campo autoincremento de tabla Paradox

Nos mostrará una advertencia de que la aplicación no realiza comprobaciones de tipo de tabla y demás, directamente aplicará el cambio. Pulsaremos «Sí» si estamos seguros de que hemos elegido la tabla Paradox y de que tenemos copia de seguridad:

Herramienta para modificar valor de campo autoincremento de tabla Paradox

Si ha realizado la modificación mostrará el mensaje:

Herramienta para modificar valor de campo autoincremento de tabla Paradox

Desde la misma aplicación podremos abrir la tabla para verificar que accedemos a los datos, para mostrar los datos necesitamos tener instalad BDE (Borland Database Engine):

Herramienta para modificar valor de campo autoincremento de tabla Paradox