Caros amigos,

Até ontem esta procedure não estava apresentando erros, estava incrementando 
normalmente... só que hoje ela simplesmente parou!... e eu não modifiquei 
nada no código.. alguém poderia me dar uma dica do que pode ser?

Ela faz o seguinte: Eu chamo, no evento OnBeforeUpdateRecord, uma procedure 
que recupera o valor do generator e informa no campo chave... só que essa 
informação está chegando nula no banco.....


O código está no final do e-mail


Obrigado

Francisco Thiago de Almeida
Enter&Plug Sistemas
Divisão: Desenvolvimento / Banco de dados
Franca - SP



procedure TDmCadastro.dspCad_ClienteBeforeUpdateRecord(Sender: TObject;
  SourceDS: TDataSet; DeltaDS: TCustomClientDataSet;
  UpdateKind: TUpdateKind; var Applied: Boolean);
begin
  if UpdateKind in [ukInsert,ukModify] then
  begin
    if UpdateKind = ukInsert then
      
UpdateRecordAutoInc(Sender,SourceDS,DeltaDS,Updatekind,Applied,DeltaDS.FieldByName('CCLI_COD').Index);
    BooleanValidade(DeltaDS.FieldByName('CCLI_IMOVEIS'));
  end;
end;


procedure TDmCadastro.UpdateRecordAutoInc(Sender: TObject;
  SourceDS: TDataSet; var DeltaDS: TCustomClientDataSet;
  UpdateKind: TUpdateKind; var Applied: Boolean; FieldIndex: Integer);
var
  li_MaxGenerator: Integer;
  li_Id: Integer;
begin
  //Captura o valor máximo permitido a um
  sqlMax_Generator_Value.Open;
  li_MaxGenerator := sqlMax_Generator_ValueRDBMAX_GENERATOR_VALUE.AsInteger;
  sqlMax_Generator_Value.Close;

  if UpdateKind in [ukInsert,ukModify] then
  begin
     if UpdateKind = ukInsert then
     begin
       try
         if pfInKey in DeltaDS.Fields[FieldIndex].ProviderFlags then
         begin
           li_Id := getId('gen_'+ DeltaDS.Fields[FieldIndex].DisplayName);

           // Se estourar o range de Generator
           if li_MaxGenerator < li_Id then
             raise Exception.Create('Server Error'+ #$D#$A +'Numero de 
registros permitidos ultrapassados')
           else
           begin
             DeltaDS.Fields[FieldIndex].NewValue := li_Id;
           end;
         end;
       except
         on E :Exception do
         begin
           DeltaDS.Edit;
           DeltaDS.Fields[FieldIndex].AsInteger :=  ci_AutoInc;
           DeltaDS.Post;
           raise;
         end;
       end;
     end;
  end;
end; 


        
        
                
_______________________________________________________ 
Yahoo! Acesso Grátis - Internet rápida e grátis. 
Instale o discador agora! http://br.acesso.yahoo.com/


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