Ver Mensaje Individual
  #6 (permalink)  
Antiguo 18/06/2013, 19:58
reverdexxx
 
Fecha de Ingreso: febrero-2007
Mensajes: 26
Antigüedad: 17 años, 11 meses
Puntos: 0
Respuesta: Consultas varias a BD Mysql

Cita:
Iniciado por Xerelo Ver Mensaje
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(1factProveedor);
            
pst.setString(2codigoprod);
            
pst.setString(3descripcion);
            
pst.setString(4modelo);
            
pst.setString(5marca);
            
pst.setString(6familia);
            
pst.setInt(7ResulStock);
            
pst.setString(8precio);
            
         
int n pst.executeUpdate();
         
            if (
0)
            {
               
JOptionPane.showMessageDialog(nullmensaje);
            }           
        } 
        catch (
SQLException ex
        {
            
JOptionPane.showMessageDialog(nullex);    
             
        }   
         
        
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(1ResulStock);
                
pst.executeUpdate();  
                                             
              }
              else{
                 
sSQL3 "INSERT INTO merma(codigo, cantmerma)"
                 
"VALUES(?,?)";
                 
                 
PreparedStatement pst cn.prepareStatement(sSQL3);
                 
pst.setString(1codigoprod);
                 
pst.setInt(2ResulStock);
                 
pst.executeUpdate(); 
                  
                 
              } 
           
        } 
        catch (
SQLException ex
        {
           
JOptionPane.showMessageDialog(nullex);
        }  
         
        
    }                                          
    }