Ajuda com SQL
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.
Obrigado.
Estanieski
Curtidas 0
Respostas
Altingon
27/06/2008
No evento onshow ou onActivate do form use isso:
Seria basicamente isso...agora adapte para o seu uso... fiz de uma maneira facil de entender...poder ter maneiras mais simples....
Espero ter ajudado
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
GOSTEI 0
Estanieski
27/06/2008
valeu...
GOSTEI 0
Brunodsr
27/06/2008
O codigo do amigo ta correto, mas para evitar problemas qndo dois usuarios acessam a tela ao mesmo tempo é melhor deixar o banco incrementar.
Espero ter ajudado.
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.
GOSTEI 0