Foros del Web » Programación para mayores de 30 ;) » Java »

Operaciones en Access

Estas en el tema de Operaciones en Access en el foro de Java en Foros del Web. Hola a todos, Estoy teniedo problemas a la hora de hacer lo siguiente: En una base de datos que tengo en Access, tengo una serie ...
  #1 (permalink)  
Antiguo 15/04/2009, 10:17
 
Fecha de Ingreso: abril-2009
Mensajes: 29
Antigüedad: 15 años
Puntos: 0
Operaciones en Access

Hola a todos,

Estoy teniedo problemas a la hora de hacer lo siguiente:
En una base de datos que tengo en Access, tengo una serie de números guardados en una columna quiero sumarlos y guardarlos en una variable mediante JAVA, pero no se como. Alguna sugerencia?
  #2 (permalink)  
Antiguo 15/04/2009, 10:22
Avatar de drac94  
Fecha de Ingreso: mayo-2008
Ubicación: México
Mensajes: 383
Antigüedad: 16 años
Puntos: 5
Respuesta: Operaciones en Access

algoritmo

hacer consulta y guardarla en un resultset
suma=0
mientras que resultset tenga mas registros
{
suma=suma+resultset(campo)
}

o desde la bd haces un select SUM(campo) from tabla y ya
  #3 (permalink)  
Antiguo 15/04/2009, 10:29
 
Fecha de Ingreso: abril-2009
Mensajes: 29
Antigüedad: 15 años
Puntos: 0
Respuesta: Operaciones en Access

Esque tengo hecho algo asi pero me da suma=0,y he probado muchas combinaciones y nada, aqui t paso el codigo( es un poco largo) y a ver si le puedes echar un vistazo. Te he puesto en otro color lo que tu me ha dicho que haga.

Gracias,


import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;

public class pruebadado extends HttpServlet {

private String Tirada = null;
Connection conn = null;
private int suma;

public void init (ServletConfig config) throws ServletException {

super.init(config);

String dsn = new String("jdbc:odbc:Tirada");

try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch(ClassNotFoundException ex) {
System.out.println("Error al cargar el driver");
System.out.println(ex.getMessage());
ex.printStackTrace();
}
try {
conn = DriverManager.getConnection(dsn, "", "");
} catch (SQLException sqlEx) {
System.out.println("Se ha producido un error al establecer la conexion con: " + dsn);
System.out.println("Message: " + sqlEx.getMessage());
System.out.println("StackTrace: ");
sqlEx.printStackTrace();
}

System.out.println("Iniciando pruebadado (version BD)...");
}

public void destroy () {
super.destroy();
System.out.println("Cerrando conexion...");
try {
conn.close();
} catch(SQLException ex){
System.out.println("No se pudo cerrar la conexion");
System.out.println(ex.getMessage());
ex.printStackTrace();
}
}

public void doGet (HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{

boolean hayError = false;

System.out.println("Tirada, v1.5");
if(req.getParameter("Tirada")!=null) Tirada = req.getParameter("Tirada");
else hayError=true;

if(!hayError)
{
if (actualizarBaseDeDatos() == 0) devolverPaginaHTML(resp);


else resp.sendError(500, "Se ha producido un error al actualizar la base de datos");
} else resp.sendError(500, "Se ha producido un error en la adquisicion de parametros");
}

public int actualizarBaseDeDatos()
{
String ssql = "SELECT Dado1 FROM Tirada";
String resul;
Statement stmt=null;
int numeroFilasActualizadas=0;
int error = 0;
String strSql = "INSERT INTO Dado1 VALUES "
+ "('" + Tirada + "')";
System.out.println(strSql);
try
{

stmt = conn.createStatement();
numeroFilasActualizadas = stmt.executeUpdate(strSql);
if(numeroFilasActualizadas!=1) error = -1;
}
catch (SQLException sql)
{
System.out.println("Se produjo un error creando Statement");
System.out.println(sql.getMessage());
sql.printStackTrace();
error = -2;
}
catch (Exception ex)
{
System.out.println("Se produjo un error");
System.out.println(ex.getMessage());
ex.printStackTrace();
error = -4;
}

try
{
suma = 0;
ResultSet result = stmt.executeQuery(ssql);
while(result.next()) {
suma = suma + result.getInt("Tirada");
}
}
catch (SQLException e)
{
e.printStackTrace();
System.out.println("Resulset: " + ssql + " Excepcion: " + e);
}

finally
{
if(stmt!=null)
{
try
{
stmt.close();
}
catch(SQLException e)
{
System.out.println("Error cerrando Statement");
System.out.println(e.getMessage());
e.printStackTrace();
error = -3;

}
}
return error;

}

}
public void devolverPaginaHTML(HttpServletResponse resp)

{

PrintWriter out=null;

try {
out=resp.getWriter();
}
catch (IOException io)
{
System.out.println("Se ha producido una excepcion");
}

resp.setContentType("text/html");
out.println("<html>");
out.println("<head>");
out.println("<title>Valores recogidos en el formulario</title>");
out.println("</head>");
out.println("<body>");
out.println("<b><font size=+2>Valores recogidos del");
out.println("formulario: </font></b>");
out.println("<p><font size=+1><b>Tirada: </b>"+Tirada+"</font>");
out.println("<P><HR><CENTER><H2>Valores actualizados con éxito</CENTER>");
out.println("<align=\"center\"><A HREF=\"TablerobuenoSN.html\">Volver al tablero</A>");
out.println("<p><font size=+1><b>Suma: </b>"+suma+"</font>"); out.println("</body>");
out.println("</html>");

out.flush();
out.close();

}
public String getServletInfo()
{
return "Este servlet lee los datos de un formulario y los introduce en una base da datos";
}
}
  #4 (permalink)  
Antiguo 15/04/2009, 11:21
Avatar de drac94  
Fecha de Ingreso: mayo-2008
Ubicación: México
Mensajes: 383
Antigüedad: 16 años
Puntos: 5
Respuesta: Operaciones en Access

y estas seguro que la sentencia sql trae resultados?
  #5 (permalink)  
Antiguo 15/04/2009, 11:36
 
Fecha de Ingreso: abril-2009
Mensajes: 29
Antigüedad: 15 años
Puntos: 0
Respuesta: Operaciones en Access

Hombre en teoría debería, pero lo no se es si la funcion que has comentado está en la clase adecuada. Tu que crees?
  #6 (permalink)  
Antiguo 15/04/2009, 12:39
Avatar de drac94  
Fecha de Ingreso: mayo-2008
Ubicación: México
Mensajes: 383
Antigüedad: 16 años
Puntos: 5
Respuesta: Operaciones en Access

Bueno para empezar veo un problema en estas 2 sentencias,
tu tienes:
Cita:
String ssql = "SELECT Dado1 FROM Tirada";
q tiene la sintaxis SELECT columna FROM tabla

y despues tienes:
Cita:
String strSql = "INSERT INTO Dado1 VALUES "
+ "('" + Tirada + "')";
Q deberia tener la sintaxis INSERT INTO tabla VALUES (valor1, valor2,...), Entonces suponiendo que la tabla se llama Dado1, la primera sentencia esta mal y si la tabla se llama Tirada, entonces la que esta mal es la segunda
  #7 (permalink)  
Antiguo 15/04/2009, 14:49
 
Fecha de Ingreso: abril-2009
Mensajes: 29
Antigüedad: 15 años
Puntos: 0
Respuesta: Operaciones en Access

Muchas gracias, haber si cambiando esto ya por fin funciona.

Gracias otra vez y hasta otra.
  #8 (permalink)  
Antiguo 16/04/2009, 04:15
 
Fecha de Ingreso: abril-2009
Mensajes: 29
Antigüedad: 15 años
Puntos: 0
Respuesta: Operaciones en Access

Eres un crack, muchas gracias, nos has hecho un favorazo.

Adios.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:26.