Ver Mensaje Individual
  #5 (permalink)  
Antiguo 22/05/2008, 14:14
gorda1985
 
Fecha de Ingreso: mayo-2008
Mensajes: 5
Antigüedad: 16 años
Puntos: 0
Respuesta: Cargar Paginas de Select Dinamicos llenados con Base de Datos

Muchisimas gracias ya solucione mi problema........ con lo que me dijiste...

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..