Bom dia, Eu uso assim:
procedure TDataModule1.Incrementa(sTabela : String; fldCampo : TField); var qryInc : TSQLQuery; begin //termina a execução caso não esteja em modo de inserção if fldCampo.DataSet.State <> dsInsert then Exit; qryInc:=TSQLQuery.Create(nil); try with qryInc do begin SQLConnection:=dmDados.DBConnection; //componente de conexão SQL.Add('SELECT MAX('+fldCampo.FieldName+') FROM '+sTabela); Open; if Fields[0].IsNull then //se a tabela está vazia retornará nulo fldCampo.AsInteger:=1 //então este será o primeiro registro else fldCampo.AsInteger:=Fields[0].AsInteger+1; end; finally FreeAndNil(qryInc); //tira o objeto da memória end; end; No beforepost da tabela: procedure TForm1.Query1BeforePost(DataSet: TDataSet); begin { incremento da chave primária } TDataModule1.Incrementa('nome da tabela no banco',DataSet.FieldByName('IDCHAVE')); end; Até mais. Alexandre -----Mensagem original----- De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de T a t y S a n t a n a Enviada em: sexta-feira, 8 de abril de 2005 22:51 Para: Gupo de Delphi Assunto: [delphi-br] Duvida, contador. Olá, boa noite a todos. Já não sei mais o que fazer com um erro que me apareceu. Desenvolvi uma pequena rotina pra um contador. Pra utilizar em campo tipo código a ser gerado automaticamente. O que acontece é que quando eu já tenho uma tabela no meu banco, o contador funciona blz, mais se excluo todos os dados e quer inserir o primeiro registro aí vem o erro. E não sei mais o que fazer pq na máquina de alguns amigos meu sistema funciona blz até pra inserção do primeiro registro já aqui na minha máquina dá o tal erro. Será que isso pode ser do delphi 6 ? Ou da minha máquina. Abaixo vou anexar a telinha de erro. Se alguém puder me ajudar eu agradeço. Dependo desse sistema pra me formar. Antecipadamente grata Tatiane Santana [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 -- Mensagem recebida está livre de virus. Checked by AVG Anti-Virus. Version: 7.0.308 / Virus Database: 266.9.13 - Release Date: 16/04/2005 -- Mensagem enviada está livre de virus. Checked by AVG Anti-Virus. Version: 7.0.308 / Virus Database: 266.9.13 - Release Date: 16/04/2005 -- <<<<< 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