Fórum Atualização de dados do Interbase na rede #36945

28/05/2003

0

Saudações,

Trabalhei muitos anos com mysql, só que estou desenvolvendo um sistema em que terei que utilizar algumas funções que o mysql não possui, como é o caso de IN(), NOT IN() e subselect’s.
O problema é que quando faço uma alteração em uma estação esta alteração fica em cachê, só sendo atualizada quando saio do sistema que fez a alteração.

Estou utilizando o seguinte:


procedure StartTransaction;
begin
dm1.Transaction1.Active := false;
dm1.Transaction1.StartTransaction;
dm1.Transaction1.Active := true;
end;

procedure CommitTransaction;
begin
dm1.Transaction1.CommitRetaining;
dm1.Transaction1.Active := False;
dm1.Transaction1.Active := True;
end;


dm1.Query1.Close;
StartTransaction;
dm1.Query1.Sql.Clear;
dm1.Query1.Sql.Add(´update cargo set cardes = :cardes);
dm1.Query1.ParamByName(´cardes´).AsString := fcargo.Edit2.Text;
dm1.Query1.ExecSql;
CommitTransaction;

Com este procedimento esperava que as alterações aparecessem em todas as estações, mas isto não ocorreu. O que devo fazer ? Startar o transaction em todos os Select’s ?


Tomcorreia

Tomcorreia

Responder

Posts

28/05/2003

Jycn

Olá.

Você já tentou a opção read commited do componente IBTransaction marcada ??

Duplo Clique no componente IBTransaction.

Jycn


Responder

Gostei + 0

28/05/2003

Evandro_covre

Cara já aconteceu muito isso aqui no trampo e infelizmente a solução que nós encontramos, pode até haver outra melhor mas fizemos dessa maneira, foi fechar e abrir a Query ou Table após cada alteração no banco ou após uma determinada rotina.

Dessa forma que vc está fazendo ele grava certinho só que só vai passar a enchergar as Atualizações na próxima vez que vc abrir a Query, é o famoso Refresh.

[]´s Evandro


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar