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

 



Responder a