Somar

Como é que faço pra somar a coluna do banco de dados com a expressão while?

Vc quer somar e atualizar o resultado de um campo em um tabela do banco ?
Se for isso, eu nao acho que eh eficiente vc somar e dar o update dentro do loop.

Nao seria mais facil fazer assim :

1 - pega o valor do campo no banco e guarda numa variavel.
2 - faz o while atualizando (soma) essa variavel.
3 - quando vc sair do loop atualiza o banco com o valor.

//Daniel

Não entendi, explica melhor o que vc quer fazer.

Cara, se você quer apenas somar uma coluna de uma tabela então faça isso via SQL, com

ResultSet rs = stmt.executeQuery("SELECT SUM(Campo_Qualquer) as Campo_Soma FROM Tabela"); while (rs.next()) { editValorSoma.setText(String.valueOf(rs.getFloat("Campo_Soma"))); } rs.close();
Um abraço!

Hum…
Consegui graças a vocês.

[code]double l=0
try{ //tratamento de erros
Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);//busca Driver
//conecta no BD
Connection con = DriverManager.getConnection(“jdbc:odbc:A1”,senha,senha);
Statement stmt = con.createStatement(); //objeto comdo sql

  ResultSet rs = stmt.executeQuery("SELECT * from registro");  

while (rs.next()) {
l=l+rs.getDouble(“Totalp”);
} [/code]

Abraço a todos!

Isso, brother!
Mas se tiver muitos registros na tabela seu loop fica inviável fazendo referência à tantos objetos…
Eu havia cometido um erro de digitação em [color=blue]“editValorSoma.setText(String.valueOf(rs.getFloat(“Campo_Qualquer”)));”[/color], não é
“Campo_Qualquer”, nesse caso seria [color=red]“Campo_Soma”[/color]; está corrigido…
Sinceramente te aconselho a utilizar o SELECT SUM…
Um abraço!

Na verdade é relativo, pq usando o SUM vc apenas joga todo processamento no servidor, se vc tiver um servidor dedicado a isso blz, se for na mesma maquina não tem sentido. Parece coisa de DBA que joga tudo no banco, sem ofenças Linkel, é apenas uma opinião, até porque uso muito o select sum para poupar trabalho rsrsrs

Abrassss

Olá pessoal!

Linkel segue o código:

[code]

ResultSet rs = stmt.executeQuery(“SELECT SUM(Totalp) as Totalp FROM registro”);

while (rs.next()) {
l=rs.getDouble(“Totalp”); [/code]

Na verdade eu não consegui entender o comando da soma via sql, pois está dando um erro de referencia circular causada pelo Totalp.

Se fôssemos interpretar esse código seria mais ou menos assim. Seleciona a soma ou simplesmente soma “Totalp” com no momento em totalp ou simplesmente da tabela registro. Bom parece que o código está certo, só que na hora da execução aparece esse erro de referencia circular.Deve está faltando algum detalhe para isso.
Eu vou tentar pesquisar vários tópicos e tentar entender os comandos sql.

Qualquer coisa pessoal me avise, de como posso interpretar esse código.
Eu posso tirar esse while… rs.getDouble(“Totalp”) e simplesmente colocar l=rs.getDouble(“Totalp”), por que o comando sql num já soma a coluna totalp?

Abraços a todos!

Cara o seu problema é conhecimento de SQL. O Comando

select sum(coluna) from Tabela 

é auto explicativo, some todas as tuplas (linhas) da coluna (Coluna) da tabela Tabela.
Algumas dicas, traga somente esse campo, caso traga algum campo a mais vc precisa usar o group by. E confira se os dados da coluna referida são do tipo número.
Caso o select sum, funcione vc pode sim retirar o while, ja que a consulta vai te retornar apenas um registro.

Flwwwww

Andrew, existe um erro em seu código SQL…
[color=red]“SELECT SUM(Totalp) as Totalp FROM registro”[/color]…
Para entender onde está o erro, complemento que a leitura do código seria essa:
Selecione a soma da coluna Totalp e chame o campo resultado dessa soma de TotalpSoma da tabela de Registros…
Sendo assim seu código SQL deve ficar assim:
[color=blue]“SELECT SUM(Totalp) as TotalpSoma FROM registro”[/color]…
E dentro do loop while, ao invés de pegar o campo Totalp, você pega o campo resultado [color=blue]TotalpSoma[/color], assim:

while (rs.next()) { l=rs.getDouble("TotalpSoma"); }
Entendeu?
Quanto à especulação se esta é a melhor forma rodando em servidor ou em máquina local, digo que não é mania de DBA e sim prática de profissional.
Um Arquiteto de Software é obrigado a se inteirar das melhores práticas de todo o conjunto de tecnologias utilizadas no desenvolvimento de um projeto de software; saber as melhores soluções para o nível de aplicação bem como em banco de dados, etc. Pense sempre que nenhum sistema deve ser feito restringido a um computador local na era da informação.
Um abraço!

[quote=Linkel]
Entendeu?
Quanto à especulação se esta é a melhor forma rodando em servidor ou em máquina local, digo que não é mania de DBA e sim prática de profissional.
Um Arquiteto de Software é obrigado a se inteirar das melhores práticas de todo o conjunto de tecnologias utilizadas no desenvolvimento de um projeto de software; saber as melhores soluções para o nível de aplicação bem como em banco de dados, etc. Pense sempre que nenhum sistema deve ser feito restringido a um computador local na era da informação.
Um abraço![/quote]

oh! amigão! desculpa aí a demora pra responder, foi por que eu estou com a carga super lotada.

Eu concordo totalmente com você.

Graça a você e com colaboração de todos consegui fazer isso pelo modo sql.

Muito obrigado.

Continue assim.

abraços

Heheheheheh…
Fico feliz por tê-lo ajudado…
Obrigado pela cordialidade.
Estamos por aí!
Um abraço!