[firebase-br] Auto Incremento

Weberson-Yahoo webersonrosemberg em yahoo.com.br
Sex Abr 20 13:26:46 -03 2007


Não sei qual componente você usa, mas se estiver utilizando o trio de 
componentes SQLDataSet (ou SQLQuery), Provider e ClientDataSet, você deve 
criar uma trigger no banco para o generator antes da inserção (Before 
Insert):

CREATE TRIGGER TR_CODIGO_NOVO_BI FOR PRODUTO
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
  IF (NEW.PROD_CODIGO_NOVO IS NULL) THEN
    NEW.PROD_CODIGO_NOVO = GEN_ID(GEN_PRODUTO,1);
END

Depois, você deve ir no Delphi, em Fields Editor do ClientDataSet e do 
SQlDataSet, marque a propriedade Required=false para o campo que será 
auto-incrementado.

Espero que ajude.


  Weberson Rosemberg
-------------------------------------
Tecnologia da Informação
  Santa Casa de Franca

----- Original Message ----- 
From: "Marcelo Castro - [www.ligteltelecom.com.br]" 
<marcelo.castro em ligteltelecom.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Friday, April 20, 2007 1:20 PM
Subject: [firebase-br] Auto Incremento


Amigos;

Eu estou usando um generator para criar auto incremento.

Seria possível fazer eu fazer esse auto incremento direto no banco.

Porém estou usando uma query para isso.

Estou fazendo assim pelo delphi.

procedure TDM_Server.DspProdutosBeforeUpdateRecord(Sender: TObject;
  SourceDS: TDataSet; DeltaDS: TCustomClientDataSet;
  UpdateKind: TUpdateKind; var Applied: Boolean);
begin
       IF UpdateKind = ukInsert THEN
    BEGIN
      if SourceDS = QryProdutos THEN
        BEGIN
           QryGenProdutos.OPEN;

           TRY
             FNUMPROD := 
QryGenProdutos.fieldbyname('PROD_CODIGO_NOVO').AsInteger;
           finally

           QryGenProdutos.Close;

           end;
           DeltaDS.fieldbyname('PROD_CODIGO').NewValue := FnumPROD;

           end;
           end;
end;
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço 
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa 





Mais detalhes sobre a lista de discussão lista