Cita:
Iniciado por Xerelo Antes de hacer el insert, haz una select para ver si existe.
Gracias Xerelo, pero el select ya se encuentra antes de insertar, pero sigo con el problema si el codigo no se encuentra en la tabla merma lo ingreso sin problemas, pero cuando ya existe deberia modificar el campo cantmerma de la tabla merma y me arroja el error "com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityCon straintViolationException: Duplicate entry '1216' for key 1", es obvio que el error es por que no acepta duplicados se que algo estoy haciendo mal pero no lo logro ver, adjunto el codigo nuevamente, gracias
Código PHP:
if (rdMerma.isSelected()){
sSQL = "UPDATE producto "
+ "SET FacturaProv = ?,"
+ "codigo = ?,"
+ "descripcion = ?,"
+ "modelo = ?,"
+ "marca = ?,"
+ "familia = ?,"
+ "stock = ?,"
+ "precio = ? "
+ "WHERE codigo ="+codigoprod;
try
{
PreparedStatement pst = cn.prepareStatement(sSQL);
pst.setString(1, factProveedor);
pst.setString(2, codigoprod);
pst.setString(3, descripcion);
pst.setString(4, modelo);
pst.setString(5, marca);
pst.setString(6, familia);
pst.setInt(7, ResulStock);
pst.setString(8, precio);
int n = pst.executeUpdate();
if (n > 0)
{
JOptionPane.showMessageDialog(null, mensaje);
}
}
catch (SQLException ex)
{
JOptionPane.showMessageDialog(null, ex);
}
sSQL1 = "SELECT codigo FROM merma "
+ "WHERE codigo = "+codigoprod;
try
{
Statement st = cn.createStatement();
ResultSet rs = st.executeQuery(sSQL1);
if (!rs.next ()){
sSQL2 = "UPDATE merma "
+ "SET cantmerma = ?,"
+ "WHERE codigo ="+codigoprod;
PreparedStatement pst = cn.prepareStatement(sSQL2);
pst.setInt(1, ResulStock);
pst.executeUpdate();
}
else{
sSQL3 = "INSERT INTO merma(codigo, cantmerma)"
+ "VALUES(?,?)";
PreparedStatement pst = cn.prepareStatement(sSQL3);
pst.setString(1, codigoprod);
pst.setInt(2, ResulStock);
pst.executeUpdate();
}
}
catch (SQLException ex)
{
JOptionPane.showMessageDialog(null, ex);
}
}
}