Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 754 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Olá Amigo, desde já agradeço pela ajuda. 

Há dias venho tenho problemas com o Firedac, ele não grava as vezes no Update. Já Setei várias propriedades do Options, Já coloquei até commit após o ExecSql, mas continua o Erro. Estou usando MYSQL, e usando o seguinte código:
 

         dm.FD.StartTransaction; // Já coloquei para Ver se Resolvia o Problema de Não Atualizar
         dm.query_caixas.Close;
         dm.query_caixas.SQL.Clear;
         dm.query_caixas.SQL.Add('UPDATE caixas set nome = :nome, ativo=:ativo where  id = :id');     
         dm.query_caixas.ParamByName('ativo').value:= 'Ativo';
         dm.query_caixas.ParamByName('nome').value:= edtNome.text; 
         dm.query_caixas.ParamByName('id').value:= edtID.text;     
         dm.query_caixas.ExecSQL;
         dm.FD.Commit;

E Erro persiste, mesmo com o StartTransaction e Commit. Alguém poderia me dar um auxilio?        

  • Consultores
Postado
5 minutos atrás, Caio Vanceli disse:

Olá Amigo, desde já agradeço pela ajuda. 

Há dias venho tenho problemas com o Firedac, ele não grava as vezes no Update. Já Setei várias propriedades do Options, Já coloquei até commit após o ExecSql, mas continua o Erro. Estou usando MYSQL, e usando o seguinte código:
 

         dm.FD.StartTransaction; // Já coloquei para Ver se Resolvia o Problema de Não Atualizar
         dm.query_caixas.Close;
         dm.query_caixas.SQL.Clear;
         dm.query_caixas.SQL.Add('UPDATE caixas set nome = :nome, ativo=:ativo where  id = :id');     
         dm.query_caixas.ParamByName('ativo').value:= 'Ativo';
         dm.query_caixas.ParamByName('nome').value:= edtNome.text; 
         dm.query_caixas.ParamByName('id').value:= edtID.text;     
         dm.query_caixas.ExecSQL;
         dm.FD.Commit;

E Erro persiste, mesmo com o StartTransaction e Commit. Alguém poderia me dar um auxilio?        

Bom dia!
Start Transaction e Commit só vão funcionar se a engine da tabela no MySQL for InnoDB.
Se este for o seu caso sugiro que encapsule seu código em um try except para não correr risco de deixar transação aberta e ver se captura um possível erro.
Assim, por exemplo:

try
  //Start Transaction
  //Minha query
  //Commit
except
  on E.Exception do
  begin
    //RollBack
    //Captura mensagem erro;
  end;
end;

Você pode tentar também usar o Start Transaction, Commit e Rollback direto pela query ao invés de pelo Connection para fazer um teste.
Agora se sua tabela for MyISAM.
Precisaria estudar o problema mais a fundo. Como você mesmo disse, ele não grava "as vezes". Mas então tem momentos que ele grava.
Precisa descobrir a diferença.
 

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Postado

Obrigado Diego, minhas tabelas são  InnoDB, Obrigado pelas dicas, mas já havia tentado dessa forma e não retorna erros, e as vezes não grava da mesma forma. Agradeço pelas dicas.

 

  • Este tópico foi criado há 754 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.