[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