Java - error en update de b de datos

   
Vista:

error en update de b de datos

Publicado por eduardo (49 intervenciones) el 14/06/2009 21:45:42
hola:
tengo este metodo para actualizar el tipo de fuente que elijo desde un combobox:

public void actualizaParametros(Connection con,String valor1) throws SQLException {
PreparedStatement st;
String actu_fuente="update parametros set tipo_fuente= ? where codigo=10";
st=con.prepareStatement(actu_fuente);
st.setString(1,valor1);
st.executeUpdate(actu_fuente);

}

cuando clickeo en el combo para elegir el tipo de fuente
llamo a este metodo con esta linea :

con.actualizaParametros(conecta,lisfuentes.getSelectedValue().toString());

(la variable con es d tipo connection y esta linea esta puesta dentro de

el evento valueChanged(ListSelectionEvent ev) del combobox)
el tema es que al hacer cloick sale un error:

java.sql.SQLException: Driver does not support this function
at sun.jdbc.odbc.JdbcOdbcPreparedStatement.executeUpdate(Unknown Source)
at Conexion.actualizaParametros .
este error es en la linea : st.executeUpdate(actu_fuente) de la funcion

necesitaria saber la falla .
desde ya gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:error en update de b de datos

Publicado por James (207 intervenciones) el 15/06/2009 06:37:36
Pues claramente te dice el error y es que el tipo de coneccion que usas con la DB no soporta la ejecucion de procedimientos almacenados, en ese caso puede deberse a dos cosas, pero principalmente es debido al tipo de coneccion que usas ODBC, lo mejor que puedes hacer es no usar eso usa el driver JDBC adecuado para la coneccion, de esa forma no solo es mas controlable, tambien es mas rapido y portable, sin embargo el error puede deberse a permisos de usuario de la DB o a permisos de connecion del servidor de base de datos, o talves el driver ODBC realmente no soporte ejecucion de SP's(nunca lo he probado), en todo caso si es por permisos de usuario prueba con un usuario con mas permisos, por ejemplo en MySQL para ejecutar SP's el usuario debe tener al menos permiso de lectura del esquema(DB) mysql, Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:error en update de b de datos

Publicado por eduardo (49 intervenciones) el 16/06/2009 20:02:16
Hola:
gracias por la respuesta:
la base a la que me conecto es access ,sin usuario ni clave .
y la conexion la hago con este driver:

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
es lo correcto ?

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:error en update de b de datos

Publicado por James (207 intervenciones) el 16/06/2009 20:29:48
Bueno para access si es correcto toca usar el puente ODBC, prueba poner simplemente

st.execute();

en lugar de

st.executeUpdate(actu_fuente);

pues esta ultima forma espera un ana consulta SQL completa y seguro no puede determnar el valor de ?, si aun asi no funciona entonces es seguro que no deberias usar PreparedStatement, en ese caso siempre se puede usar un Statement normal y en ese caso si usarias

st.executeUpdate(actu_fuente);

pero la cadena actu_fuente deberia ser la consulta sql completa reemplazando el ? por el valor que deseas enviar, Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar