Ver Mensaje Individual
  #6  
Antiguo 27-02-2005
Sick boy Sick boy is offline
Miembro
 
Registrado: may 2003
Ubicación: Cantabria
Posts: 245
Reputación: 24
Sick boy Va por buen camino
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.
Responder Con Cita