Salut!
Je voudrais savoir comment comparer l'ancienne et la nouvelle valeur d'un ResultSet?
J'ai utilisé rset.getString(1) et rset.getString(0) mais ça ne marche pas (rset.getString(0) cause un problème)
Aidez moi c'est vraiment urgent!!
Salut!
Je voudrais savoir comment comparer l'ancienne et la nouvelle valeur d'un ResultSet?
J'ai utilisé rset.getString(1) et rset.getString(0) mais ça ne marche pas (rset.getString(0) cause un problème)
Aidez moi c'est vraiment urgent!!
Quand tu compare rset.getString(1) et rset.getString(0) tu compare la première et la deuxième colonne d'une même ligne.
Ce que tu peut faire c'est un truc du genre
Et ce n'est pas le peine de préciser que c'est urgent c'est pas ça qui fera qu'on te répondra plus vite
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 String valeur=rset.getString('la_colonne'); rset.previous(); String ancienne_valeur=rset.getString('la_colonne');
Désolée pour le fait que c'est urgent!
J'ai essayé ton code: il ne marche pas:ça bloque au niveau de rset.previous
voila mon code:
P.S:j'ai ajouté le rset.next() car sans lui ça ne marche pas aussi!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 while (rset.next()) { String valeur = rset.getString(1); rset.previous(); String ancienne_valeur = rset.getString(1); }
Si tu as une idée sur l'origine du problème, aide moi stp.
Merci!!
![]()
je ne comprends pas complétement ton pb. Peux-tu montrer ton code?
Ce qui est sûr:
ne marchera jamais car un ResultSet commence ses indices à 1, contrairement aux tableaux
Code : Sélectionner tout - Visualiser dans une fenêtre à part rset.getString(0)![]()
Je suppose qu'à un moment, tu fais un update sur le ResultSet. Tu peux donc faire:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 String ancienneValeur = rset.getString("NomColonne"); rs.updateString("NomColonne", "NouvelleValeur"); String nouvelleValeur = rset.getString("NomColonne");
voici mon code:
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
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 package oracle_cnn; import javax.swing.*; import javax.swing.event.*; import java.awt.Dimension; import java.sql.*; import java.util.Vector; import javax.swing.table.DefaultTableModel; import java.util.Timer; import java.util.TimerTask; public class test { public static void main(String[] args) throws SQLException { Timer minuteur = new Timer(); DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); // Connexion à la base de données final Connection conn =DriverManager.getConnection ("jdbc:oracle:thin:@127.0.0.1:1521:ferr", "user", "password"); TimerTask tache = new TimerTask() { public void run() { // Charger le pilote Oracle try { // Requête SQL //Création d'un objet requête Statement stmt = conn.createStatement (ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); //Envoyer la requête et récupérer le résulatat ResultSet rset = stmt.executeQuery ("select nolan from fstlan"); // Affichage du résultat while (rset.next ()) { String valeur = rset.getString(1); System.out.println("nouvelle "+valeur); rset.previous(); String ancienne_valeur = rset.getString(1); System.out.println("ancienne "+ancienne_valeur); } } catch (SQLException ex) { } } }; minuteur.schedule(tache, 0, 1000); } }
J'ai pas compris la ligne de ton code
Code : Sélectionner tout - Visualiser dans une fenêtre à part rs.updateString("NomColonne", "NouvelleValeur");
Mais ça n'a aucun sens de faire ça avec un statement !
C'est comme si tu demandais donne moi la valeur actuelle de l'enregistrement 1 ET sa valeur précédente, c'est naze... elle n'existe plus (ou alors dans un journal si tu as paramétrer la DB pour faire une image avant/après)
Il faut sauvegarder la valeur et au moment où tu dois tester, tu charges la valeur actuelle, et tu la compares à la valeur sauvegardée.
A+
il faut que ton resultset soit scrollable.
de plus il faut faire attention au premier tour. Je pense que previous ne marche pas au premier tour ...
tout ceci est dans la javadoc ...
sinon au lieu d'utiliser previous tu peux simplement stocker la valeur précédente dans un string et la comparer avec la valeur en cours ... enfin je trouve ça aussi bien ...
Partager