[firebase-br] Muito lentooClientDataSet.ApplyUpdates(0) noFirebird 1.5...

Paulo R. Biazotto prbiazto em ig.com.br
Qui Fev 10 16:18:10 -03 2005


Talvez essa rotina do Thiago resolva o problema que reportei ontém com
código auto-incremental, mas me ficou uma dúvida se existe alguma chance de
dois usuarios criarem um registro ao mesmo tempo e ficarem com o mesmo
código. Se alguém puder me esclarecer essa dúvida eu agradeço muito.

BeforeUpdateRecord
const
  {$J+} // Permite constante tipada
  qg:Integer = -1;
  {$J-}// Des-permite :D
begin
  if UpdateKind in [ukInsert] then //Se estiver inserindo
  begin
    if SourceDS = sqlCad_Condicao then // Estou atualizando o Mestre
    begin
      UpdateRecordAutoInc(Sender,SourceDS,DeltaDS,UpdateKind,Applied,
      DeltaDS.FieldByName('CCOND_CODIGO').Index); // Pego o proximo valor
(auto Incremento)
      qg := DeltaDS.FieldByName('CCOND_CODIGO').NewValue // Jogo o valor na
minha constante
    end
    else if qg <> -1 then // se foi informado um valor (no auto inc em caso
de erro, é retornando um -1)
      DeltaDS.FieldByName('CCOND_CODIGO').NewValue := qg; //Jogo o valor da
chave aqui
   end;
 end;






Mais detalhes sobre a lista de discussão lista