Atualização de dados do Interbase na rede
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 ?
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
Curtidas 0
Respostas
Jycn
28/05/2003
Olá.
Você já tentou a opção read commited do componente IBTransaction marcada ??
Duplo Clique no componente IBTransaction.
Jycn
Você já tentou a opção read commited do componente IBTransaction marcada ??
Duplo Clique no componente IBTransaction.
Jycn
GOSTEI 0
Evandro_covre
28/05/2003
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
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
GOSTEI 0