[firebase-br] Alguem já usa o FB 2.0 com IBX

Fabio Giro fabio_giro em yahoo.com.br
Sex Out 27 09:29:02 -03 2006


Estou perguntando isso, pois uso o D7 + FB 1.5.2 + DBX, mas por causa
de um teste que vou relatar, estou pensando em voltar ao IBX.

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;






Mais detalhes sobre a lista de discussão lista