Boa noite a todos da lista.

To com um erro no meu sistema de cadastros, nao sei se conserto no
banco ou no meu sistema, pois qd vou cadastrar o sistema esta me
gerando um registro NULO e outro com as informacoes cadastrais. 
Tenho uma tabela de clientes (ID-Integer,Nome-Varchar(70)...) com uma
triger para gerar o ID e um gerador para controlar a sequencia, segue
abaixo:
   CREATE GENERATOR ID_CLIENTE;

   CREATE TRIGGER TRIG_ID_CLIENTE FOR CLIENTE
   ACTIVE BEFORE INSERT POSITION 0
   AS
   begin
      IF (NEW.ID IS NULL) THEN
         NEW.ID = GEN_ID(id_cliente,1);
   end


E agora trechos de meu codigo:

   strSql := 'select * from cliente where id = 0 '; //Para limpar meu
                                                    // Dataset
   FbDataSet.Close;
   FbDataSet.SelectSQL.Clear;
   FbDataSet.SelectSQL.Add( strSql );
   FbDataSet.Open; --->>> Neste instante ele incrementa o gerador
                          ID_CLIENTE e cria um registro no vazio no
                          dataset                          

   FbDataSet.Insert; --->>ja tentei tirar esta linha. Retirando nao
                          grava nada

   FbDataSet.FieldByName('Nome').AsString :='Cliente novo';

   FbDataSet.Post; -->Incrementa um novo ID_CLIENTE e grava os dois
                      registros
 
   Dtm.IBTransaction.CommitRetaining;

Se eu usar uma outra instrucao SQL, que me retorne algum registro este
problema nao ocorre. Apos o OPEN nao é incrementado o ID_CLIENTE, nem
é gerado o registro vazio. Meu problema esta neste registro vazio que
é gerado com um SQL do tipo "ID=0".

Peco desculpas pelo email longo e espero que tenha conseguido me fazer
entender. 
Agradeco qualquer ajuda.


Estou usando Delphi 7 com Firebird 1.5




-- 
<<<<< 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