Ajuda com SQL

27/06/2008

0

Pessoal eu tenho um campo em uma tabela que vamos chamar de ´Contagem´ onde eu preciso realizar um incrementdo dele de maneria automática no banco de dados sempre que eu abrir um form, gostaria de uma ajuda para criar um Update, alguém poderia me orientar?

Obrigado.


Estanieski

Estanieski

Responder

Posts

27/06/2008

Altingon

No evento onshow ou onActivate do form use isso:

var
  ultimo:integer;
//aqui vc verifica o maior valor gravado
Query.close;
Query.sql.clear;
Query.sql.add(´select max(campo) as ultimo from tabela´);
Query.open;
//se tiver algum dado no campo ele pega caso contrario joga 0;
if query.recordcount > 0 then
  ultimo := query.fieldbyname(´ultimo´).asInteger
else
  ultimo := 0;
Query.close;
Query.sql.clear;
Query.sql.add(´update tabela set ´+
                     ´campo = :campo ´+
                     ´where codigo = :codigo´);
// partindo do principio que tem um registro já existem e que seja unico
query.parambyname(´codigo´).asInteger := 1;
query.parambyname(´campo´).asInteger := ultimo +1;
Query.Execsql;
try
  transaction.commit;
except
  transaction.rollback;

//faz o update




Seria basicamente isso...agora adapte para o seu uso... fiz de uma maneira facil de entender...poder ter maneiras mais simples....

Espero ter ajudado


Responder

27/06/2008

Estanieski

valeu...


Responder

27/06/2008

Brunodsr

O codigo do amigo ta correto, mas para evitar problemas qndo dois usuarios acessam a tela ao mesmo tempo é melhor deixar o banco incrementar.
Query.close;
Query.sql.clear;
Query.sql.add(´update tabela set ´+
                     ´campo = coalesce(campo,0)+1 ´+
                     ´where codigo = :codigo´);
query.parambyname(´codigo´).asInteger := 1;
Query.Execsql;


Espero ter ajudado.


Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar