Моя таблица версий имеет 8 атрибутов, все заполняются при вставке проекта (отношение один ко многим, проекты - версии). Почему я получаю эту ошибку, если у меня есть полные поля? Или как значения загружаются в таблицу (версию), которая зависит от другого (проекта)?
(codeProject - FK -Cascade -)
Индекс параметра вне диапазона (8> число параметров, что составляет 7). Ошибка в версии DAO
public class VersionDAO {
ConexionSQL conectar = new ConexionSQL();
Connection con;
PreparedStatement ps;
ResultSet rs;
String changeVersion;
public int insertarVer(Version ver, Proyecto pro) {
String sql = "INSERT INTO version (idVersion, nameVersion, efficVersion, acumCases, acumFail, acumTime, contPruebas, codeProject) VALUES (?,?,?,?,?,?,?,(SELECT code FROM proyecto))";
try {
con = conectar.getConexionSQL();
ps=con.prepareStatement(sql);
ps.setInt(1, ver.getIdversion());
ps.setString(2, ver.getNameVersion());
ps.setDouble(3, 0.0);
ps.setInt(4, ver.getAcumCasos());
ps.setDouble(5, 0.0);
ps.setDouble(6, 0.0);
ps.setInt(7, ver.getContPruebas());
ps.setInt(8, pro.getCod());
ps.executeUpdate();
return 1;
} catch(Exception e){
e.printStackTrace();
}
return 0;
}
Table Project (Proyecto in spani sh)
public class ProyectoDAO {
ConexionSQL conectar = new ConexionSQL();
Connection con;
PreparedStatement ps;
ResultSet rs;
public int insertar(Proyecto p) {
String sql = "INSERT INTO proyecto (code, name, status, language, duration, advance, effec) VALUES (?,?,?,?,?,?,?)";
try {
con = conectar.getConexionSQL();
ps=con.prepareStatement(sql);
ps.setInt(1, p.getCod());
ps.setString(2, "Prueba");
ps.setInt(3, p.getStatus());
ps.setString(4, "PHP");
ps.setInt(5, p.getDuracion());
ps.setInt(6, p.getAvance());
ps.setDouble(7, 0.0);
ps.executeUpdate();
return 1;
} catch(Exception e){
e.printStackTrace();
}
return 0;
}