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

Drama con aplicación de escritorio

Estas en el tema de Drama con aplicación de escritorio en el foro de Java en Foros del Web. Buenas noches comunidad: Tengo una aplicación de escritorio de Netbeans que trabaja con Oracle 10g. El problema es el siguiente: Intento borrar un registro a ...
  #1 (permalink)  
Antiguo 05/12/2011, 22:50
 
Fecha de Ingreso: septiembre-2011
Mensajes: 40
Antigüedad: 12 años, 7 meses
Puntos: 0
Pregunta Drama con aplicación de escritorio

Buenas noches comunidad:


Tengo una aplicación de escritorio de Netbeans que trabaja con Oracle 10g.

El problema es el siguiente:

Intento borrar un registro a través de un procedimiento almacenado, y la cosa no me funciona, pero tampoco me tira error.

Intento borar un registro a través de un combobox, el cual selecciono el ítem y luego apreto el botón de borrar y nada.

Acá está la configuración del combobox:


private void cboEliminarTipoProyectoPopupMenuWillBecomeVisible( javax.swing.event.PopupMenuEvent evt) {


String driver = "oracle.jdbc.driver.OracleDriver";
String dsn = "jdbc:oracle:thin:@localhost:1521:XE";
String sql = "select id_tipo_proyecto from tipo_proyecto Order By 1 Asc";

String usuario = "tallerbd";
String password = "oracle";


try {

Class.forName(driver);
Connection con = DriverManager.getConnection(dsn, usuario, password);
java.sql.Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIV E, ResultSet.CONCUR_READ_ONLY);

// PreparedStatement ps = con.prepareStatement(sql);
ResultSet rs = stmt.executeQuery (sql);

cboEliminarTipoProyecto.removeAllItems();

while (rs.next()==true) {


cboEliminarTipoProyecto.addItem (rs.getObject(1));
}


rs.close();
} catch (SQLException ex) {
Logger.getLogger(Constructora.class.getName()).log (Level.SEVERE, null, ex);
} catch (ClassNotFoundException ex) {
Logger.getLogger(Constructora.class.getName()).log (Level.SEVERE, null, ex);

}
}



La clase que llama al procedimiento almacenado es esta:



package procedimiento.almacenado;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;


public class SP_Elimina_Tipo_Proyecto extends negocio.TipoProyecto{

private Connection Conexion;
private CallableStatement cstmt = null ;

public SP_Elimina_Tipo_Proyecto()
{
super();
Conexion = null;
}

public SP_Elimina_Tipo_Proyecto(Connection Con, String id_tipo_proyecto,
String nombre_tipo_proyecto)
{
super(id_tipo_proyecto, nombre_tipo_proyecto);

Conexion = Con;
}

public void Elimina() throws ClassNotFoundException, SQLException
{

Class.forName("oracle.jdbc.driver.OracleDriver");

Connection con=DriverManager.getConnection("jdbc:oracle:thin: @localhost:1521:XE", "tallerbd", "oracle");

CallableStatement cstmt = con.prepareCall("{call SP_EliminarTipoProyecto(?)}");

cstmt.setString(1,id_tipo_proyecto);

cstmt.execute();
con.close();
}

}


Y EL PROCEDIMIENTO ALMACENADO CREADO EN ORACLE, ES ESTE:


create or replace procedure "SP_ELIMINARTIPOPROYECTO"
(xid_tipo_proyecto IN VARCHAR2 default '12',
xnombre_tipo_proyecto IN VARCHAR2 default '30')
is
begin
delete from tipo_proyecto where id_tipo_proyecto = 'xid_tipo_proyecto';
end;
/


Cuál es el problema???
Ayuda, p0or favor!!!
  #2 (permalink)  
Antiguo 06/12/2011, 06:26
Avatar de DeeR  
Fecha de Ingreso: diciembre-2003
Ubicación: Santiago
Mensajes: 520
Antigüedad: 20 años, 4 meses
Puntos: 17
Respuesta: Drama con aplicación de escritorio

¿ El procedimiento almacenado funciona cuando lo llamas directamente desde una consola hacía tu db oracle ?
  #3 (permalink)  
Antiguo 06/12/2011, 09:51
 
Fecha de Ingreso: septiembre-2011
Mensajes: 40
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Drama con aplicación de escritorio

Es que yo tengo otro procedimiento almacenado el cual es para ingresar: lo ejecuto y listo, en cambio éste que es para borrar no me funciona.

Me dice que borran los datos, pero no pasa nada en la base de datos.
  #4 (permalink)  
Antiguo 06/12/2011, 10:31
 
Fecha de Ingreso: septiembre-2011
Mensajes: 40
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Drama con aplicación de escritorio

Se me olvidaba:

Acá dejo la configuración del botón Borrar


private void CMD_Eliminar_tipo_proyectoActionPerformed(java.awt .event.ActionEvent evt) {


String id_tipo_proyecto = cboEliminarTipoProyecto.toString().toUpperCase();

String driver = "oracle.jdbc.driver.OracleDriver";
String dsn = "jdbc:oracle:thin:@localhost:1521:XE";
String sql = "{call SP_EliminarTipoProyecto(?)}";


String usuario = "tallerbd";
String password = "oracle";

try {
Class.forName(driver);
Connection con = DriverManager.getConnection(dsn, usuario, password);
CallableStatement cstmt = con.prepareCall(sql);


cstmt.setString(1, id_tipo_proyecto);

if (cstmt.execute()) {
JOptionPane.showMessageDialog(null, "El tipo de proyecto no pudo ser borrado");
} else {
JOptionPane.showMessageDialog(null, "Registro eliminado correctamente");
}
cboEliminarTipoProyecto.removeAllItems();
cstmt.close();
con.close();
} catch (Exception e1) {

JOptionPane.showMessageDialog(null, e1);
}
}

Etiquetas: 10g, netbeans, oracle, procedimiento_almacenado
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 11:32.