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

Insertar en 2 tablas de un formulario...

Estas en el tema de Insertar en 2 tablas de un formulario... en el foro de Java en Foros del Web. Si no es mucha molestia, tengo un problema cuando cargo un formulario en jsp por ejemplo alta.jsp.. Lo que quiero es que los parametros que ...
  #1 (permalink)  
Antiguo 23/05/2008, 08:35
 
Fecha de Ingreso: mayo-2008
Mensajes: 5
Antigüedad: 16 años
Puntos: 0
Insertar en 2 tablas de un formulario...

Si no es mucha molestia, tengo un problema cuando cargo un formulario en jsp por ejemplo alta.jsp.. Lo que quiero es que los parametros que recibo del formulario se registren en 2 tablas ya lo hice pero no es la forma correcta... Mi pagina dice asi:

Numero de terminal: 54644
Activo: 5464564
Marca: Kingston
Status: Disponible
Tipo: DIMM
observaciones: Varias

Es solo un ejemplo yo tengo una tabla c_componente que es el catalogo de componentes... has de cuenta que todos esos registros que hace el usuario yo lo voy a registrar en una tabla componente pasando el id_c_componente para ver que es lo que esta registrano que componente.. Pero los campos de tipo y marca son diferentes a muchos componentes,, los otros digamos que son generales.. pero los que va a cambiar en la forma son esos 2 marca y tipo.. Y esos dos campos los tengo que insertar en otra tabla llamandose tabla memoria en la que tengo id tipo,marca,id_componente el ultimo es mi foreign key para unirla con la tabla componente...

Y asi me pasa con mas productos nose cual sea la forma mas conveniente de registrar datos de este formulario a 2 tablas nose si me explique, aqui te pongo el codigo de mi insert cuando inserto en cpu y en componente:

public boolean insertar(HttpServletRequest request)
{
PreparedStatement ps=null;
PreparedStatement ps1=null;
boolean ban=false;

try
{
int num_terminal=0, activo=0, num_serie=0, status=0, cpu_marca=0, id_padre=0, id=-1, id_c_componente=0, idCpu=0;
String tipo=null, modelo=null, color=null, observaciones=null, dependencia=null;
id = generaId();
idCpu = generaIdCpu();

id_c_componente = Integer.parseInt(request.getParameter("idComponent e"));
num_terminal = Integer.parseInt(request.getParameter("num_termina l"));
activo=Integer.parseInt(request.getParameter("acti vo"));
tipo=request.getParameter("tipo");
modelo=request.getParameter("modelo");
num_serie=Integer.parseInt(request.getParameter("n um_serie"));
observaciones=request.getParameter("observaciones" );
dependencia=request.getParameter("dependencia");
cpu_marca=Integer.parseInt(request.getParameter("m arca"));
status=Integer.parseInt(request.getParameter("stat us"));
color=request.getParameter("color");

String sql = null;
sql="INSERT INTO componente(id,id_c_componente,id_marca,num_activo, modelo,num_serie,id_status,observaciones,dependenc ia,id_padre,num_terminal) VALUES(?,?,?,?,?,?,?,?,?,?,?)";
ps=this.conn.prepareStatement(sql);
ps.setInt(1,id);
ps.setInt(2,id_c_componente);
ps.setInt(3,cpu_marca);
ps.setInt(4,activo);
ps.setString(5,modelo);
ps.setInt(6,num_serie);
ps.setInt(7,status);
ps.setString(8,observaciones);
ps.setString(9,dependencia);
ps.setInt(10,2);
ps.setInt(11,num_terminal);


String sql2=null;
sql2="INSERT INTO cpu(id,tipo,color,id_componente) VALUES (?,?,?,?)";
ps1=this.conn.prepareStatement(sql2);
ps1.setInt(1,idCpu);
ps1.setString(2,tipo);
ps1.setString(3,color);
ps1.setInt(4,id_c_componente);

if (ps.executeUpdate() > 0){
this.conn.commit();
ban = true;
}
if( ps != null){
ps.close();
ps = null;
}
if (ps1.executeUpdate() > 0){
this.conn.commit();
ban = true;
}
if( ps1 != null){
ps1.close();
ps1 = null;
}
}
catch(Exception e)
{
System.err.println("Componente.java");
e.printStackTrace();
}
finally
{
try
{
if (ps != null)
{
ps.close();
ps = null;
}
}
catch(Exception e)
{
System.err.println("Componente.java");
e.printStackTrace();
}
}
return ban;
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////

El problema de esto es que si yo selecciono por ejemplo otra opcion memoria en el caso de arriba como yo le digo al compilador que ahora el campo tipo y marca ya no son para cpu sino para la tabla de memoria.... Me podrias ayudar.... Vemos que el color es otro campo variable para cpu y ese campo debe ir solo en cpu... Claro en mi formulario si tengo color..
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 18:57.