Fórum Como verificar se o registro foi inserido [MySQL] #431673

29/12/2012

0

Boa galera...

Como saber se um registro foi realmente inserido, alterado ou apagado?
Estou usando o Zeos Lib e estou fazendo mais ou menos assim:

sql := 'INSERT INTO TABELA (...) VALUES (...);';
try
    tabela.ExecSQL(sql);
finally
    ShowMessage('Inserido com sucesso.');
end;


só que esse "try" veririfica somente se o SQL foi executado, e não se o registro foi inserido. Pois pode dá vários tipos de erro na inserção como 'duplicate primary key', erro de sql, entre outros...
Existe alguma rotina pronta para fazer essa verificação?
Romario Melo

Romario Melo

Responder

Posts

30/12/2012

Silvio Costa

Boa tarde Romario,
Você colocou a mensagem de registro inserido com sucesso dentro de um bloco finally, dano erro ou não a mensagem será exibida.
Vc pode colocar essa mensagem logo após a inserção do registro(dentro do try), pois se o registro for inserido ele exibirá a mensagem senão nada será exibido(caso ocorra algum erro) e outra mensagem caso não seja incluido.
Ex:

sql := 'INSERT INTO TABELA (...) VALUES (...);';
try
    tabela.ExecSQL(sql);
    ShowMessage('Inserido com sucesso.');
except
    ShowMessage('Ocorreu um erro, contate o administrador);
end;




Caso queira recuperar a mensagem de erro, tente isso:


sql := 'INSERT INTO TABELA (...) VALUES (...);';
try
    tabela.ExecSQL(sql);
    ShowMessage('Inserido com sucesso.');
except
    on E : Exception do
      ShowMessage(E.ClassName+' erro, mensagem : '+E.Message+' Contate o administrador informando esse erro!');
  end;



Espero ter ajudado, caso tenha algum erro de sintaxe me perdoe, parei de mecher com delphi uns meses e às vezes foge algo.

Abcc e bom fim de ano
Responder

Gostei + 0

30/12/2012

Marco Salles

o que o amigo acima colocou esta correto , porem tem que ser feito resalvas .. Eu não utilizo a Biblioteca Zeos a pergunta
é , tabela.ExecSQL(sql) gera exceção ??? Se sim ( eu não utilizao..) a estrutura é esta mesmo
Responder

Gostei + 0

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

Aceitar