tabla 1 :Ciudad :id_ciudad(pk), nombre_ciudad, id_region(FK)
tabla 2: Region :id_region(pk), nombre_region
Lo que quiero hacer es insertar en ciudad el id_region , pero desde el combobox se seleciona el nombre de la region .
Gracias.... de antemano
pedaso de codigo en java
Código:
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==insertarC)
{
// CREANDO LA VARIABLE DE CONECCION
String connectionUrl = "jdbc:sqlserver://localhost:1433;" +
"databaseName=prueba_1;user=sa;password=1234";
// DECLARANDO LOS OBJETOS JDBC
Connection con = null;
PreparedStatement insertar = null;
ResultSet rs = null;
try
{
// ESTABLECIENDO LA CONECCION
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
con = DriverManager.getConnection(connectionUrl);
JOptionPane.showMessageDialog(null,"-- lograstes la coneccion --");
// CREANDO Y EJECUTANDO SENTENCIAS SQL.
if (null == insertar)
{
insertar = con.prepareStatement("INSERT INTO ciudad(id_ciudad,nombre_ciudad,id_region) VALUES (?,?,?)");
}
insertar.setString(1,txtIc.getText());
insertar.setString(2,txtNc.getText());
insertar.setString(3,(String)region.getSelectedItem());//combobox
insertar.executeUpdate();
con.close();
}
catch (Exception x)
{
x.printStackTrace();
}
finally
{
if (rs != null) try { rs.close(); } catch(Exception x) {}
if (insertar != null) try { insertar.close(); } catch(Exception x) {}
if (con != null) try { con.close(); } catch(Exception x) {}
}
procedimiento en el sql server 2005
Código:
CREATE PROCEDURE insertarCiudad
@id_ciudad varchar(5),
@nombre_ciudad varchar(20),
@nombre_region varchar(20)
as
declare @id_region varchar(5)
SELECT @id_region = id_region from region where nombre_region=@nombre_region
INSERT into ciudad (id_ciudad,nombre_ciudad,id_region)
values (@id_ciudad,@nombre_ciudad,@id_region)
EXECUTE insertarCiudad