Hola,
Lo que se rompio en tu tabla es el autoincremental.
Por algun motivo, volvio hacia atras, o dejo de crecer, por eso te da el error de key violation, porque se repite la clave primaria
Lo que dice marcos es correcto (alguien lo dudaba), y se soluciona porque desde una base de datos vacia el autoincremental esta correcto.
Por fin voy a poder agregar algo nuevo.
La base de datos se puede arreglar sin tener que pasar todos los registros a una nueva.
Usar el siguiente codigo, pasandole el nombre de la base de datos y el nuevo valor del autoincremental:
Código:
Procedure SetAutoInc(filename : string; Value : Longint);
var
mystream : tfilestream;
begin
mystream := tfilestream.create(filename,
fmOpenWrite + fmShareExclusive);
try
mystream.Seek(73, soFromBeginning);
mystream.Writebuffer(Value, SizeOf(Value));
finally
mystream.Free;
end;
end;
Evidentemente, aseguraros de que el valor que pasais en Value es el mayor, u os encontrareis de nuevo con el mismo problema.
Saludos.
PD: Saludos tambien a marcos desde la tierruca, pasando un frio de cagarse.