Hola
Primero, felipe88 tiene razon, tiene que ser integer.
segundo, si usas este formato 000, cuando llegue a 10 quedara asi 00010, 100 quedara asi 000100 y asi sucesivamente, por lo menos como lo estas haciendo.
Ahora, no se por que la necesidad de los ceros adelante, esto se podria hacer formateando el dato, sin que este en la tabla.
Yo lo haria asi:
Código Delphi
[-]
var
id, id2: integer;
begin
id:= 1;
id2:= id + 1;
clientetable1.Last;
if clientetable1.FieldValues['codigo']= null then
clientetable1.FieldValues['codigo']:= id
else
begin
clientetable1.Insert;
clientetable1.FieldValues['codigo']:= id2
clientetable1.Post;
Bueno, empecemos por ahi, ya nos diras como te fue.
Saludos