Bonjour,
Je souhaite effectuer une comparaison de deux tables, une table de référence et une table de travail.
Pour cela je fais un select * sur ma table de travail, et pour chaque ligne récupérée, je fais un select sur ma table de référence. Si je trouve des données je supprime la ligne de la table de travail, sinon je créé la ligne dans la table de référence.
Voici mon code:
Lorsque la deuxième partie du code est exécutée, je cherche à récupérer le nombre de résultats trouvés, mais j'obtiens le message d'erreur suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 String query = "select * from AG_ATF.dbo.ATF_SUIVI_WORK"; statement = (SQLServerStatement) connect.createStatement(); resultSet = (SQLServerResultSet) statement.executeQuery(query); while (resultSet.next()) { resultSet.getInt("ID_ADHERENT"); resultSet.getString("LIB_ADHERENT"); resultSet.getInt("ID_ENTREPOT"); resultSet.getInt("DATE_MOIS"); resultSet.getInt("DATE_ANNEE"); resultSet.getInt("ID_STATUT"); resultSet.getString("LIB_STATUT"); resultSet.getDate("DATE_TRAITEMENT"); resultSet.getInt("TYPE_FICHIER"); String query2 = "select count (*) from AGORA_ATF.dbo.ATF_SUIVI_WORK WHERE LIB_ADHERENT = '" + resultSet.getInt("LIB_ADHERENT") +"'"; statement2 = (SQLServerStatement) connect.createStatement(); resultSet2 = statement2.execute(query2); disp("Compteur: " + resultSet2.); }
Je ne pense pas que la structure de mon code soit des plus optimales pour ce genre d'opération donc si vous avez des conseils, ils seront bienvenus.An error occurred while converting the varchar value to JDBC data type INTEGER.
Du coup je suis bloqué à cette étape. Si j'ai bien compris on a accès à 3 méthodes différentes:
execute: qui renvoit un booleen si un resultSet a été trouvé.
executeQuerry: renvoie le resultSet des résultats
executeUpdate: renvoie un int sur le nombre de lignes modifiées (pour les INSERT ou DELETE)
Je serai tenté d'utiliser executeUpdate mais je ne fais pas insert, ni delete, j'effectue simplement une recherche en base.
Lorsque j'éxécute ma querry2 directement dans SQL Manager, elle me renvoie un tableau avec une colonne et une ligne avec un 0 dedans (puisqu'il n'y a pas de valeur trouvée). Or cet colonne est nomée COLUMN1 (colonne que je n'ai pas nommé moi même). Donc je ne comprends pas trop la logique.
Je vous remercie par avance pour votre aide.
Thibault
Partager