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

Procedimiento Almacenado en Oracle con Java

Estas en el tema de Procedimiento Almacenado en Oracle con Java en el foro de Java en Foros del Web. Comunidad: Tengo una aplicación de escritorio en Java, en la cual intento borrar la infrmación de la base de datos a través de un combobox ...
  #1 (permalink)  
Antiguo 30/11/2011, 15:42
 
Fecha de Ingreso: septiembre-2011
Mensajes: 40
Antigüedad: 12 años, 7 meses
Puntos: 0
Pregunta Procedimiento Almacenado en Oracle con Java

Comunidad:

Tengo una aplicación de escritorio en Java, en la cual intento borrar la infrmación de la base de datos a través de un combobox que me trae la ID y un botón de borrar.

La clase del procedimiento almacenado la tengo acá:




package procedimiento.almacenado;

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


public class SP_Elimina_Constructora extends negocio.Constructora{

private Connection Conexion;
private CallableStatement cstmt = null ;

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

public SP_Elimina_Constructora(Connection Con, String id_constructora,
String nombre_constructora,
String direccion_constructora,
int telefono_constructora,
String contacto_constructora)
{
super(id_constructora, nombre_constructora,
direccion_constructora, telefono_constructora,
contacto_constructora);

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_EliminarConstructora(?)}");

cstmt.setString(1,id_constructora);
// cstmt.setString(2,nombre_constructora);
// cstmt.setString(3,direccion_constructora);
// cstmt.setInt(4,telefono_constructora);
// cstmt.setString(5,contacto_constructora);

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


Acá dejo el Procedimiento Almacenado de Oracle

create or replace procedure "SP_ELIMINARCONSTRUCTORA"
(xid_constructora IN VARCHAR2 default '12')
is
begin
delete from constructora where id_constructora = 'xid_constructora';
end;
/

La cosa es que NO ME BORRA NADA DE LA BASE DE DATOS.


Cuá sería el problema???


Dejo acá la configuración del botón borrar

private void CMD_BorrarActionPerformed(java.awt.event.ActionEve nt evt) {

String IdConstructora = cboBorrarConstructora.toString();

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


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, IdConstructora);

if (cstmt.execute()) {
JOptionPane.showMessageDialog(null, "La persona no pudo ser borrada");
} else {
JOptionPane.showMessageDialog(null, "Persona borrada correctamente");
}
cboBorrarConstructora.removeAllItems();
cstmt.close();
con.close();
} catch (Exception e1) {

JOptionPane.showMessageDialog(null, e1);
}
}
  #2 (permalink)  
Antiguo 13/01/2012, 16:40
 
Fecha de Ingreso: enero-2012
Mensajes: 4
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Procedimiento Almacenado en Oracle con Java

Hola,

Si al ejecutar el proceso no obtienes ningun error, y no visualizas nada extraño despues de debugar, asegurate de que incluyes la sentencia SQL commit; despues de la sentencia DELETE en el stored procedure.

Saludos.

Etiquetas: 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 15:17.