Bonjour,
J'utilise JoinRowSetImpl() afin d'effectuer une jointure sur les enregistrements de 2 ResultSet
Lorsque l'on écrit le prédicat de jointure en 1ere position dans la deuxième clause sql, l'accès au metadata retourne null pour la 2 eme champ de la requete.
exPour contourner cette situation j'ai écris le prédicat de jointure en derniere position dans la 2 ème requete
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
23
24
25
26
27
28
29 //base1 JoinRowSet jrs = new JoinRowSetImpl(); rs = stmt.executeQuery("select idContrat, cClient from Clients")... CachedRowSet versement = new CachedRowSetImpl(); versement.populate(rs); versement.setMatchColumn(1); jrs.addRowSet(versement); //base2 rs2 = stmt.executeQuery("select idContrat, prixContrat, hContrat from Contrats").. CachedRowSet ct = new CachedRowSetImpl(); ct .populate(rs2); ct .setMatchColumn(1); // Le critère de jointure jrs.addRowSet(ct); RowSetMetaDataImpl rsm = (RowSetMetaDataImpl) jrs.getMetaData(); for (int i=1; i<=rsm.getColumnCount(); i++){ System.out.println(rsm.getColumnName(i) + "---" + rsm.getColumnLabel(i)); //console idContrat --- Contrat cClient --- Code Client prixContrat --- Null hContrat --- Prix Contrat (parfois un décalage...)
Avez-vous déjà rencontré ce probleme ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 rs2 = stmt.executeQuery("select prixContrat, hContrat, idContrat from Contrats").. ct .setMatchColumn(3); // Le critère de jointure
Partager