Da maneira que está não ocorrerá autoincremento, sempre será gerado o mesmo código:
DataModulo.TREGRA.FieldByName('CDREGRA').Value:= DataModulo.TREGRA.FieldByName('CDREGRA').Value + 1; O que pode fazer eh criar uma TREGRA1 que aponte para a mesma tabela TREGRA do banco e usar dessa forma. // vai para o ultimo registro da TREGRA1 DataModulo.TREGRA1.Close; DataModulo.TREGRA1.Last; DataModulo.TREGRA1.Open; DataModulo.TREGRA.Append; DataModulo.TREGRA.FieldByName('CDREGRA').Value:= DataModulo.TREGRA1.FieldByName('CDREGRA').Value + 1; // observe que está pegando o codigo da TREGRA1 """ """ Vale lembrar que CDREGRA1 deve ser chave primária. Roberto. --- Em delphi-br@yahoogrupos.com.br, "Info Desenvolvimento" <[EMAIL PROTECTED]> escreveu > Possuo uma tabela que o campo é auto-incremento. Como faço para que sejam gravados registros nesta tabela > Estou mandando gravar, mas não está gravando, está gravando por cima > > Exemplo no meu botão gravar, onde está o erro? > > if(Application.MessageBox > ('Confirma a Gravação dos dados?', > 'CONFIRMAÇÃO',mb_IconQuestion+mb_YESNO)=idyes)then > BEGIN > LStatus.Visible:= True; > LSTATUS.Caption:= 'Inclusão de Registro!'; > DataModulo.TREGRA.Open; > DataModulo.TREGRA.Edit; > DataModulo.TREGRA.FieldByName('CDREGRA').Value:= DataModulo.TREGRA.FieldByName('CDREGRA').Value + 1; > DataModulo.TREGRA.FieldByName('DESCRICAO').Value:= EDESCRICAO.Text; > DataModulo.TREGRA.FieldByName('PERCENTUAL').Value:= EPERC.Text; > DataModulo.TREGRA.FieldByName('VAL_LIMITE').Value:= ELIMITE.Text; > DataModulo.TREGRA.FieldByName('DTINI_RETENCAO').AsDateTime:= strtodate(EINICIO.Text); > DataModulo.TREGRA.FieldByName('DTFIM_RETENCAO').AsDateTime:= strtodate(EINICIO.Text); > IF RGRETENCAO.ItemIndex = 0 THEN > DataModulo.TREGRA.FieldByName ('TP_RETENCAO').AsString:= 's';//Semanal > IF RGRETENCAO.ItemIndex = 1 THEN > DataModulo.TREGRA.FieldByName ('TP_RETENCAO').AsString:= 'q';//Quinzenal > IF RGRETENCAO.ItemIndex = 2 THEN > DataModulo.TREGRA.FieldByName ('TP_RETENCAO').AsString:= 'm';//Mensal > IF RGRETENCAO.ItemIndex = 3 THEN > DataModulo.TREGRA.FieldByName ('TP_RETENCAO').AsString:= 't';//Trimestral > IF RGRETENCAO.ItemIndex = 4 THEN > DataModulo.TREGRA.FieldByName ('TP_RETENCAO').AsString:= 'e';//Semestral > IF RGRETENCAO.ItemIndex = 5 THEN > DataModulo.TREGRA.FieldByName ('TP_RETENCAO').AsString:= 'a';//Anual > DataModulo.TREGRA.FieldByName('DTINI_VALIDADE').AsDateTime:= strtodate(EINIVALID.Text); > DataModulo.TREGRA.FieldByName('DTFIM_VALIDADE').AsDateTime:= strtodate(EFIMVALID.Text); > DataModulo.TREGRA.Post; > ShowMessage('Operação realizada com sucesso!'); > LStatus.Visible:= False; > EDESCRICAO.Clear; > EPERC.Clear; > ELIMITE.Clear; > EINICIO.Clear; > EFIM.Clear; > EINIVALID.Clear; > EFIMVALID.Clear; > EDESCRICAO.Enabled:= False; > EPERC.Enabled:= False; > ELIMITE.Enabled:= False; > EINICIO.Enabled:= False; > EFIM.Enabled:= False; > EINIVALID.Enabled:= False; > EFIMVALID.Enabled:= False; > BitGrava.Enabled:= False; > BitEdita.Enabled:=False; > BitCancela.Enabled:=False; > BitDeleta.Enabled:= False; > RGRETENCAO.ItemIndex:= -1; > RGRETENCAO.SetFocus; > END; > > [As partes desta mensagem que não continham texto foram removidas] -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] ou [EMAIL PROTECTED] Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html