1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
| public int insertAIPref(int idSync, String identifiantVersement, long idLotArcsys) throws ArcheckException
{
if (idSync < 1 ||
identifiantVersement == null ||
idLotArcsys < 1)
{
handleSQLException("<insertAIPref> Une ou plusieurs données sont nulles : idSync [" + idSync + "], identifiantVersement [" + identifiantVersement + "], idLotArcsys [" + idLotArcsys + "]");
}
int id = -1;
try
{
// on insert la nouvelle definition
logger.debug("<insertAIPref> insertion de la référence sur l'AIP d'identifiant Arcsys [" + idLotArcsys + "] dans le referentiel");
sql = "INSERT INTO AIPref (id_sync, id_versement, id_lot_arcsys) VALUES (?,?,?)";
preparedStatement = conn.prepareStatement(sql);
compteur = 1;
preparedStatement.setInt(compteur++, idSync);
preparedStatement.setString(compteur++, identifiantVersement);
preparedStatement.setLong(compteur++, idLotArcsys);
preparedStatement.executeUpdate();
rs = preparedStatement.getGeneratedKeys();
// recupération de l'identifiant
if (rs.next())
{
id = rs.getInt(1);
}
else
{
handleSQLException("<insertAIPref> erreur lors du chargement de l'identifiant de l'AIPref [" + idLotArcsys + "]");
}
}
catch (SQLException exc)
{
if (exc.getErrorCode() == 1062)
{
logger.warn("Le lot d'identifiant Arcsys [" + idLotArcsys + "] est déjà présent dans le référentiel.");
String sql = "SELECT id FROM AIPref WHERE id_lot_arcsys=?";
try
{
preparedStatement = conn.prepareStatement(sql);
compteur = 1;
preparedStatement.setLong(compteur++, idLotArcsys);
rs = preparedStatement.executeQuery();
if (rs.next())
{
// l'extension existe déjà, on récupere l'identifiant
id = rs.getInt("id");
}
}
catch (SQLException e)
{
handleSQLException("<insertAIPref> Erreur SQL [" + exc.getMessage() + "]", exc);
}
}
else
handleSQLException("<insertAIPref> Erreur SQL [" + exc.getMessage() + "]", exc);
}
return id;
} |
Partager