Tenho um sistema D7 + FB 1.5.2 + DBX. Numa tela de cadastro (codigo e 
descrição) faço várias inclusões/alterações e quando rodo o "gstat -
h -t "tabela" -z banco.fdb" tenho o seguite resultado:
oldest active=4000 , next transaction=4010 , ou seja, tenho 10 
transações abertas. Se saio do sistema e entro, quando abro um 
ClienteDataset, o resultado é oldest active=4011 , next transaction= 
4012. Como podem observar, abro uma transação para cada applyupdate. 
Alguém já observou isso? Será que falta algum detalhe para o 
sqlconnection fechar a transação? Segue uma pequena parte da lógica:
tela de cadastro
procedure TCadSind.FormShow(Sender: TObject);
begin
  with DM.qryManut do
   begin
     sql.clear;
     sql.add('SELECT CODSIND, NOMESIND FROM SINDICATO');
     sql.add(' WHERE CODSIND = :pcodsind');
   end;

  cdsGrid.open; <-- atualiza o oldest transaction
end;

procedure TCadSind.btIncAltClick(Sender: TObject);
begin
  with DM.cdsManut do
   begin
     if btIncAlt.caption = 'Incluir' then
        insert
     else
     if btIncAlt.caption = 'Alterar' then
        edit;
     fieldbyname('CODSIND').asinteger := strtoint(trim
(meCodigo.Text));
     fieldbyname('NOMESIND').asstring := trim(edtNome.Text);

     post;
   end;
end;

DataModulo
procedure TDM.cdsManutAfterPost(DataSet: TDataSet);
begin
  with cdsManut do
   begin
     transacao.TransactionID := 1;
     transacao.IsolationLevel := xilREADCOMMITTED;
     if not Conexao.InTransaction then
        Conexao.StartTransaction(Transacao);

     ApplyUpdates(0);

     if ApplyUpdates(0) = 0 then
      begin
        try
           Conexao.Commit(Transacao);
        except
           Conexao.Rollback(Transacao);
        end;
      end;
   end;
end;







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