Fórum Erro sql Dephixe10+FireDac+FB 1.5 #551117
11/04/2016
0
Estou realizando alguns teste para desenvolvimento em multicamadas usando as tecnologias
Delphi XE 10 Seattle - Versão Demo
Banco : FireBird 1.5
Servidor de aplicação
FDCursor
FDFBLink
FDConnection - xReadComited
FDQuery
DataSetProvider
Cliente
ClientDataSet <Ligado> DataSetPrivider
Trabalhando somente com usuário conectado ok, todas a operações são executas perfeitamente sem erro nenhum pesquisa,
inserção e edição e deleção blz
Mas quando entra um segundo usuário, a coisa complica o segundo usuário não consegue enxergar nada o que o primeiro
usuário faz e vice versa.
Exemplificando :
Se o usuário um entra no registro faz alguma alteração e grava e faz uma pesquisa novamente aparece para ele a alteração
tudo ok..
Mas se o segundo fazer uma pesquisa não aparece para ele a modificação e se tento alterar este registro aparece a mensagem
de do firedac lock conflict on no wait transaction deadlock - update conflitcs with concurrent update
Os componentes basicamente deixei as configurações padrões.
No lado cliente uso
Cds.Append ou Edit
Cds.Post;
Cds.ApplayUpdates(0)
O que posso esta fazendo errado ou e alguma configuração dos componentes de conexão.
Desde já agradeço a todos.
Geraldo Barroso
Curtir tópico
+ 0Post mais votado
12/04/2016
Te aconselho a utilizar o FDTransaction para controle de transações e realizar estas transações de maneira curta.
Neste modelo:
try
if not Transaction.InTransaction then
Transaction.StartTransaction;
tabelaY.post;
Transaction.Commit;
except
on E: Exception do
begin
if Transaction.InTransaction then
Transaction.Rollback;
end;
end;Veja este link:
http://www.activedelphi.com.br/forum/viewtopic.php?t=51346&highlight=transaction
Natanael Ferreira
Gostei + 1
Mais Posts
12/04/2016
Geraldo Barroso
obrigado pela dica, mas, me corrija se estiver errado o fdtransaction tem que esta ligado ao fdconnection? se for realmente isto, como é um teste em três camadas não tem como eu não tenho acesso ao fdconnection(lado servidor) somente o sqlconnection(lado cliente) pode ser feito por ele?...
Desde já agradeço.
Gostei + 0
12/04/2016
Natanael Ferreira
Faça um teste do código que passei utilizando o SQLConnection.
Gostei + 0
12/04/2016
Geraldo Barroso
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)