La Web del Programador: Comunidad de Programadores
 
    Pregunta:  18451 - PROBLEMAS CON TAUTOINCREMENTFIELD
Autor:  Toni Guerrero
Tengo un problema con una tabla de albaranes cuyo campo N{umero es un TAutoincrementField. No se como insertar un registro completo en la BD y lo que hago es esto

Tabla.Open;
tabla.Append;
//Aqui coloco el resto de los datos.

Pero me da problemas ya que a veces me asigna mal el numero(da uno que ya existe) o bien no consigue insertar el registro

Espero que alguien pueda ayudarme

  Respuesta:  Luis Fernandez
En principio te falta el Post que reliza el grabado fisico del registro en la tabla:
Tabla.Open;
tabla.Append;
//Aqui coloco el resto de los datos.
TABLA.POST;
De todas formas tienes que tener en cuenta que los campos autoincrementales son eso AUTO (automaticos) e INCREMENTALES a cada registro nuevo le suma uno. Pero si borras cualquier registro y añades uno nuevo, a este le da el siguiente no el que has borrado. De la misma forma, aunque INSERTES un registro, no le da el numero que corresponde al del medio entre los que lo has insertado sino uno mas del ultimo.Esto es para garantizar la integridad referencial. Si lo que te interesa (que creo es eso) es asignar un numero a cada Albarán y tu poder manejar esos numeros tienes que crear un nuevo campo para ello, pero el Autoincremental dejale tranquilo o empezarán los errores y cuando llevas 500.000 registros no sabes la alegria que da la corrupcion de datos.Cualquier duda comunicamelo.
Un saludo