Problemas con traspaso de info a Bases de datos SQL

fito_o
02 de Agosto del 2005
Quisiera saber como hacer la inserción en dos tablas una PERSONA y otra DEPARTAMENTO
Bueno, yo ya logro insertar datos en Persona, pero no logro enviar datos a DEPARTAMENTO a la misma vez.
por favor alguien puede darme solución, este es mi código:

{
String dsn = "prueba_jsp";
String database = "prueba_jsp";
String user = "prueba_jsp";
String password = "";
String driver = "sun.jdbc.odbc.JdbcOdbcDriver";


try
{

System.out.println("dsn "+dsn+" database "+database+" user "+user+" pass "+password+" driver "+driver);
conn = new Conexionsqlserver(dsn,database,user,password,driver);
//new WaitConnection(conn);
conn.open();
}
catch (Exception e)
{
System.out.println("Error en la creacion de la conexionsqlserver");
//e.printStackTrace();
//System.exit(1);
}

System.out.println("Conexion ok");
}



//Metodo que guarda el nombre de una persona en la base de datos
public int ingresarDatos(PersonaBD laPersonaBD)
{
String nombre = laPersonaBD.getNombre();
String snombre = laPersonaBD.getSnombre();
String rut = laPersonaBD.getRut();
String papellido = laPersonaBD.getPapellido();
String mapellido = laPersonaBD.getMapellido();
String ciudad = laPersonaBD.getCiudad();
String ndepto = laPersonaBD.getNdepto();
String nodepto = laPersonaBD.getNodepto();
String ubi = laPersonaBD.getUbi();
String fons = laPersonaBD.getFons();

int ingresado=0;

String sql="insert into personas values('"+ nombre +"','"+ snombre +"','"+ rut +"','"+ papellido +"','"+ mapellido +"','"+ ciudad +"') departamentos values('"+ ndepto +"','"+ nodepto +"','"+ ubi +"','"+ fons +"')";
ingresado=conn.insertar(sql);

return 2;
}

El Formulario lo tengo en formato HTML y este es el codigo:

<%@page import="logica.ControladorDatos"%>
<jsp:useBean id="datos" class="logica.ControladorDatos" scope="session"/>
<jsp:setProperty name="datos" property="*"/>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Ingresar Nombre</title>
</head>

<body>

<%
int ingresado = datos.ingresarDatos(datos.getNombre(),datos.getSnombre(),datos.getRut(),datos.getPapellido(),datos.getMapellido(),datos.getCiudad(),datos.getNdepto(),datos.getNodepto(),datos.getUbi(),datos.getFons());

if (ingresado == 1)

{
out.print("<br><b><u>AVISO:</u><br><br></b> <i>Los datos fueron correctamente ingresados en nuestra Base de Datos. Por favor haga clic en Atrás para ingresar otro registro o Simplemente Cierre la ventana.</i><br><br><br><br>");
out.print("<center><table border><td><b>DATOS PERSONALES</b></td></table>");
out.print("<center><table border><tr><td><br><u><b>RUT:</b></u><td><i>");
out.print(datos.getRut());
out.print("</i><tr><td><br><u><b>NOMBRE:</b></u><td><i>");
out.print(datos.getNombre());
out.print("</i><tr><td><br><u><b>SEGUNDO NOMBRE:</b></u><td><i>");
out.print(datos.getSnombre());
out.print("</i><tr><td><br><u><b>APELLIDO PATERNO:</b></u><td><i>");
out.print(datos.getPapellido());
out.print("</i><tr><td><br><u><b>APELLIDO MATERNO:</b></u><td><i>");
out.print(datos.getMapellido());
out.print("</i><tr><td><br><u><b>CIUDAD:</b></u><td><i>");
out.print(datos.getCiudad());
}
else
{
out.print("<b>ERROR:<br> <i>Los Datos ingresados no pudieron ser almacenados en Nuestra Base de Datos, por favor revise los datos o Ingrese nuevamente.</i></b>");
}


%>

</body>
</html>


Saludos.



Fito_o
02 de Agosto del 2005
Porfavor alguien puede darme una solucion que, no la puedo encontrar!.

geobasis
02 de Agosto del 2005
Lo que quieres hacer no se puede pq la instruccion sql no cumple con la sintaxis del Insert asi q el parser nunca la va a compilar peor aun ejecutar, lo que tienes q hacer es ejecutar en dos Insert separados teniendo en cuenta los chequeos de integridad referencial admás de utilizar transacciones o algun otro medio que te garantize la integridad de los datos, bueno esto depende de los requerimientos de tu sistema.