IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

Probleme avec preparedStatement : "no row count was produced"


Sujet :

JDBC Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2006
    Messages : 51
    Par défaut Probleme avec preparedStatement : "no row count was produced"
    Salut les gens!

    Alors voila, un p'tit soucis auquel j'arrive pas a remedier. J'ai du creer un petite application avec une interface graphique ou un utilisateur peut entrer un mot/chiffre/etc dans un textfield, ce mot/chiffre est recupéré dans un preparedStatement pour ensuite afficher les resultat dans un textArea. Y'a aussi un bouton qui permet de se connecter a la base. En bref, c'est un truc tout bete

    Voila le bout de code ou se trouve la partie sql :

    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
     
    ...
    private Connection dbConnection;
    ...
    public void actionPerformed(ActionEvent ae)  {
     
    		if (ae.getSource().equals(b)) {
     
    			try {
    				Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    				dbConnection = DriverManager.getConnection("jdbc:odbc:memoire", "system","h3ll0");
    				ta.append("Connected to DataBase! You can now enter your query.");
    			}
     
    			catch (Exception e ){
    				ta.append("Error : "+e);
    			}
    		}
     
    		if (ae.getSource().equals(tf)) {
     
    			try {
    			String sqlquery = "SELECT name FROM customer WHERE city=?";
    			PreparedStatement ps = dbConnection.prepareStatement(sqlquery);
    			ps.setString(1,tf.getText());
    			ps.executeUpdate();
    			dbConnection.close();
    			}
    			catch (SQLException sqle) {
    				ta.append(newline+"Error : "+sqle);
    			}
     
    		}
    	}
    Donc rapidement : un clic sur le bouton "b" permet de se connecter a la BD (ca c'est bon aucun soucis). Le probleme c'est au niveau du textField, j'ai crée un preparedStatement bidon avec un petite base de donnée bidon (clients/fournisseur le truc habituel :p ). Donc lorsqu'on entre une ville dans le textField, le string est recupéré avec le getText() et envoyé dans la requete pour sortir le résultat, mais c'est la ou y'a un os : le programme me renvoie sans arret "no row count was produced"...? J'ai suivit le bon tuto dans la faq tout ca et cherché sur google pour une solution mais j'ai reçu tres peu de resultats dans la recherche si ce n'est qu'il faudrai potentiellement que j'utilise un ResultSet mais je sais pas trop quoi ecrire dedans :p

    Parmis le peu de choses que j'ai trouvé, y'avait notamment d'utiliser ps.updateQuery(sqlquery) mais la j'ai l'erreur que mon driver ne supporte pas cette fonction.

    Sincèrement désolé si ma question est stupide ou si la réponse est simple, mais je débute encore avec jdbc

    Voila un ptit screen de l'interface et du probleme

    Merci d'avance pour vos réponses!


  2. #2
    in
    in est déconnecté
    Membre Expert Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Par défaut
    Citation Envoyé par spl0tch Voir le message
    ...si ce n'est qu'il faudrai potentiellement que j'utilise un ResultSet ...
    c'est clair !

    le resultSet te sers à parcourir le résultat d'une requete.

    De plus le executeUpdate te renvoie un int qui correspond au nombre de lignes modifiées par ta requete de type update, insert,delete ... -> Il faut lire la javadoc !!

    Tu devrais jeter un coup d'oeil à cet exemple de la FAQ pour utiliser un ResultSet

    Modifie ton code et si ça ne marche pas, on est là ...

  3. #3
    Membre expérimenté Avatar de coco62
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 237
    Par défaut
    ps.executeUpdate(); pour un SELECT.

    executeQuery me parait mieux

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2006
    Messages : 51
    Par défaut
    Ah merci pour les réponses super rapides

    Je vais parcourir un peu les liens que tu m'as passé in, si ca marche pas je vous dirai!

    merci encore!

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2006
    Messages : 51
    Par défaut
    Alors j'ai tenté la chose suivante, le code devrai etre correct il me semble (bon mis a part l'affichage des resultats qui sera moche mais ca osef pour le moment :p) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ResultSet rs = ps.executeQuery(sql);
     
    				while (rs.next()) {
    					String name = rs.getString(1);
    					ta.append(name);
    				}
    Mais l'erreur qui survient maintenant c'est java.sql.SQLException: Driver does not support this function...faut il mettre le driver a jour ou ajouter un bout de code pour lui ajouter des fonctionnalités?

    J'ai en fait deja utilisé un resultSet y'a quelques temps pour tester une connection a ma bd oracle avec un requete toute simple et la je n'avais aucune probleme. Bizarre bizarre...la j'avoue que je suis bloqué, une idée de génie quelqu'un?

  6. #6
    in
    in est déconnecté
    Membre Expert Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Par défaut
    Sur quelle ligne tu as l'erreur ? (tu peux obtenir la trace de l'exception en utilisant printStackTrace)

    C'est quoi ta base de donnée ? et le driver que tu utilises ?

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2006
    Messages : 51
    Par défaut
    hello,

    Ma base de données c'est oracle 10.2.0 et j'utilise le driver sun.jdbc.odbc.JdbcOdbcDriver

    Alors avec le printStackTrace il me situe l'erreur à la ligne 70 la ou j'ai

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ResultSet rs = ps.executeQuery(sql);
    (ps c'est le preparedStatement).

    Voila tout ce qu'il me print avec le StackTrace :

    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
     
    java.sql.SQLException: Driver does not support this function
    	at sun.jdbc.odbc.JdbcOdbcPreparedStatement.executeQuery(Unknown Source)
    	at UserInterface.actionPerformed(UserInterface.java:70)
    	at javax.swing.JTextField.fireActionPerformed(Unknown Source)
    	at javax.swing.JTextField.postActionEvent(Unknown Source)
    	at javax.swing.JTextField$NotifyAction.actionPerformed(Unknown Source)
    	at javax.swing.SwingUtilities.notifyAction(Unknown Source)
    	at javax.swing.JComponent.processKeyBinding(Unknown Source)
    	at javax.swing.JComponent.processKeyBindings(Unknown Source)
    	at javax.swing.JComponent.processKeyEvent(Unknown Source)
    	at java.awt.Component.processEvent(Unknown Source)
    	at java.awt.Container.processEvent(Unknown Source)
    	at java.awt.Component.dispatchEventImpl(Unknown Source)
    	at java.awt.Container.dispatchEventImpl(Unknown Source)
    	at java.awt.Component.dispatchEvent(Unknown Source)
    	at java.awt.KeyboardFocusManager.redispatchEvent(Unknown Source)
    	at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(Unknown Source)
    	at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(Unknown Source)
    	at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown Source)
    	at java.awt.DefaultKeyboardFocusManager.dispatchEvent(Unknown Source)
    	at java.awt.Component.dispatchEventImpl(Unknown Source)
    	at java.awt.Container.dispatchEventImpl(Unknown Source)
    	at java.awt.Window.dispatchEventImpl(Unknown Source)
    	at java.awt.Component.dispatchEvent(Unknown Source)
    	at java.awt.EventQueue.dispatchEvent(Unknown Source)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.run(Unknown Source)
    Ca fait peur :p...

  8. #8
    in
    in est déconnecté
    Membre Expert Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Par défaut
    Je ne sais pas si ça peut aider mais chez moi pour Oracle j'utilise le drive ojdbc14.jar et dans le code mon driver s'appelle oracle.jdbc.driver.OracleDriver

    Pourrait-on voir plus de code (la déclaration du PreparedStatement et la mise à jour des paramètres) ?

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2006
    Messages : 51
    Par défaut
    Alors je suis allé sur le site d'oracle et j'ai téléchargé le fichier ojdbc14.jar, changé le nom du driver dans mon code (comme le tiens) et ajouté le jar dans le build path avec eclipse. Ca compile sans problème, mais même erreur lors de l'exécution, toujours à la ligne 70. J'ai peut etre fais quelque chose de faux avec l'actionListener et il comprend pas correctement la valeur que j'entre dans le textField, mais meme la j'ai essayé de chopper ce que j'entre dans le textField avec un string et la methode getText() puis d'utiliser le string a la place du getText() dans mon preparedStatement, mais ca n'y change rien.

    Je pense le plus simple est de donner tout mon code, peut etre que tu verra quelque chose que j'aurai oublié :

    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
     
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.event.*;
     
    import java.sql.*;
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
     
    public class UserInterface extends JFrame implements ActionListener {
     
    	private JTextField tf;
    	private JTextArea ta;
    	private final static String newline = "\n";
    	private JButton b;
    	private Connection dbConnection;
     
    	public UserInterface() {
    		JPanel p = new JPanel();
     
    		tf = new JTextField(30);		//TextField pour le mot entré par le user.
    		tf.addActionListener(this);
     
    		ta = new JTextArea(20,35); //TextArea qui renvoi les resultats.
    		ta.setEditable(false);
    		JScrollPane sp = new JScrollPane(ta);
     
    		b = new JButton("Connect to DB");
    		b.addActionListener(this);
     
    		p.add(tf,BorderLayout.NORTH);
    		p.add(sp,BorderLayout.CENTER);
    		p.add(b,BorderLayout.SOUTH);
     
    		getContentPane().add(p);
    		setTitle("DBInterrogator");
    		setVisible(true);
    		setSize(450,450);
    		setResizable(false);
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	}
     
    	public static void main (String[] argv) throws SQLException {
    		new UserInterface();
    	}
     
    	public void actionPerformed(ActionEvent ae)  {
     
    		if (ae.getSource().equals(b)) {
     
    			try {
    				//Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    				Class.forName("oracle.jdbc.driver.OracleDriver");
    				dbConnection = DriverManager.getConnection("jdbc:odbc:memoire", "system","h3ll0");
    				ta.append("Connected to DataBase! You can now enter your query.");
    			}
     
    			catch (Exception e ){
    				ta.append("Error : "+e);
    			}
    		}
     
    		if (ae.getSource().equals(tf)) {
     
    			try {
    			String sql = "SELECT name FROM customer WHERE city=?";
    			PreparedStatement ps = dbConnection.prepareStatement(sql);
    			ps.setString(1,mot);
     
    			ResultSet rs = ps.executeQuery(sql);
     
    				while (rs.next()) {
    					String name = rs.getString(1);
    					ta.append(name);
    				}
    			rs.close();	
    			ps.close();
    			dbConnection.close();
    			}
     
    			catch (SQLException sqle) {
    				ta.append(newline+"Error : "+sqle);
    				sqle.printStackTrace();
    			}
     
    		}
    	}
    }
    Voila c'est un peu long j'admet, mais le code est pas compliqué, dis moi si quelque chose n'est pas clair

    Merci pour l'aide!

  10. #10
    in
    in est déconnecté
    Membre Expert Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Par défaut
    Ben je vois rien de bizarre à part que

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ps.setString(1,mot); // mot n'est pas défini
    mais je pense que c'est un pb de copier/coller. de tout façon ça compilerait pas.

    Sinon quand tu fermes le resultset, la connection ... il est fortement conseillé de le faire dans un bloc finally, pour fermer dans tous les cas.

    Tu peux utiliser ton ancien driver je pense, si c'est une source de donnée odbc, ça doit être mieux ...

    Mais là franchement je vois pas du tout ...

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2006
    Messages : 51
    Par défaut
    arf

    Ouai l'erreur que tu as noté c'est un probleme de copier/coller parce que j'ai essayé quelque chose tout a l'heure, ai oublier de rechanger...a la place de mot, en fait c'est tf.getText() pour prendre ce que l'utilisateur à rentré.

    Bon ce que je vais faire : ajouter le finally (même si je doute que ca change quoique ce soti) puis j'essaierai le programme sans interface, juste avec la console, on verra si ca marche.

    Sinon si quelqu'un a encore une idée qu'il hésite pas ^^!

  12. #12
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Le driver oracle n'utilise pas la même url, tu as gardé la syntaxe jdbc/odbc, il faudrait utiliser quelque chose du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    jdbc:oracle:thin:@adresseIPduServeur:1521:nomDeLaBase
    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2006
    Messages : 51
    Par défaut
    Ah ben oui evidemment c'est sur que si je change pas ca fonctionnera pas

    Bref, meme avec un autre driver ca ne marche pas au final

    Lorsque j'utilise l'url suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jdbc:oracle:thin:@127.0.0.1:1521:XE
    j'arrive a me connecter a ma base, mais lorsque j'entre quelque chose dans le textField j'ai maintenant l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.sql.SQLException: ORA-03115: unsupported network datatype or representation
    Est-ce que c'est bon signe? ^^

  14. #14
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Dans un sens, c'est bon signe, ça prouve que tu envoies la requête et qu'il la prend en charge...
    Pour ce qui est de l'erreur "unsupported data ...", aurais-tu dans ta table une colonne de type Timestamp ?
    Pourrais-tu donner la structure de la table et la requête passée (à moins que ce soit toujours la même que dans la portion de code précédente)

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2006
    Messages : 51
    Par défaut
    Salut!

    Alors la ptite BD sur laquelle je test c'est en fait 7 tables d'une entreprise fictionnelle qu'on à reçu pour les TP de BD sur oracle l'année derniere.

    La requete que j'effectue dans le code en haut :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT name FROM customer WHERE city=?
    concerne la table customer (evidemment) qui est crée par le script 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
    CREATE TABLE CUSTOMER (
     	CUSTID		NUMBER (6)  PRIMARY KEY
                         		CONSTRAINT CUSTID_ZERO CHECK (CUSTID > 0),
     	NAME            CHAR (45),
     	ADDRESS    	CHAR (40),
     	CITY            CHAR (30),
     	STATE          	CHAR (2),
     	ZIP             CHAR (10),
     	AREA            NUMBER (3),
     	PHONE		CHAR (10),
     	REPID    	NUMBER (4) 
    				CONSTRAINT CUSTOMER_REP REFERENCES EMP(EMPNO),
     	CREDITLIMIT	NUMBER (9,2),
     	COMMENTS  	VARCHAR2(512));
     
    INSERT INTO CUSTOMER VALUES (10001, 'Nicolas', '27, ch. des Tourbes', 'Lausanne', 'VD', '2000', 78, '021789564', 102, 1000, 'promotion');
    INSERT INTO CUSTOMER VALUES (10002, 'Margerie', '2, rte. de Revy', 'Geneve', 'GE', '1207', 32, '0226598732', 101, 2000, 'promotion');
    INSERT INTO CUSTOMER VALUES (10003, 'Hans', '12, Burgstrasse', 'Cadolzburg', 'ZH', '1265', 11, '0443211231', 101, 4000, 'Schnitzel Prima');
    Donc tout banal le truc. Par contre, le programme concernera par la suite une base de données bien plus grande (c'est pour mon mémoire, je le fais 1 année en avance).

    Est-ce que tu (ou quelqu'un d'autre) pourrai compiler/executer mon code sur ta machine (si biensur tu as une BD)? Faudrai juste changer les parametre d'acces et la requête, mais au moins on pourrai savoir si ca vient de chez moi ou si c'est le code qui a un probleme.

    Dans le printstacktrace il m'indique toujours la ligne avec le resultSet, meme avec le changement d'url. D'ailleurs je te donne tout le printStackTrace :

    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
     
    java.sql.SQLException: ORA-03115: unsupported network datatype or representation
     
    	at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70)
    	at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:112)
    	at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:173)
    	at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:455)
    	at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:413)
    	at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:1030)
    	at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:194)
    	at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:785)
    	at oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:860)
    	at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1186)
    	at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:1377)
    	at oracle.jdbc.driver.OracleStatementWrapper.executeQuery(OracleStatementWrapper.java:386)
    	at UserInterface.actionPerformed(UserInterface.java:69)
    	at javax.swing.JTextField.fireActionPerformed(Unknown Source)
    	at javax.swing.JTextField.postActionEvent(Unknown Source)
    	at javax.swing.JTextField$NotifyAction.actionPerformed(Unknown Source)
    	at javax.swing.SwingUtilities.notifyAction(Unknown Source)
    	at javax.swing.JComponent.processKeyBinding(Unknown Source)
    	at javax.swing.JComponent.processKeyBindings(Unknown Source)
    	at javax.swing.JComponent.processKeyEvent(Unknown Source)
    	at java.awt.Component.processEvent(Unknown Source)
    	at java.awt.Container.processEvent(Unknown Source)
    	at java.awt.Component.dispatchEventImpl(Unknown Source)
    	at java.awt.Container.dispatchEventImpl(Unknown Source)
    	at java.awt.Component.dispatchEvent(Unknown Source)
    	at java.awt.KeyboardFocusManager.redispatchEvent(Unknown Source)
    	at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(Unknown Source)
    	at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(Unknown Source)
    	at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown Source)
    	at java.awt.DefaultKeyboardFocusManager.dispatchEvent(Unknown Source)
    	at java.awt.Component.dispatchEventImpl(Unknown Source)
    	at java.awt.Container.dispatchEventImpl(Unknown Source)
    	at java.awt.Window.dispatchEventImpl(Unknown Source)
    	at java.awt.Component.dispatchEvent(Unknown Source)
    	at java.awt.EventQueue.dispatchEvent(Unknown Source)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.run(Unknown Source)
    Voila je sais pas si ca t'avance à quelque chose En tout cas merci de prendre le temps d'étudier mon problème

  16. #16
    in
    in est déconnecté
    Membre Expert Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Par défaut
    peut être peux tu essayer avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setObject(1,tf.getText(),Types.VARCHAR);
    à la place du setString ...

  17. #17
    Membre chevronné

    Homme Profil pro
    Chomeur
    Inscrit en
    Juin 2006
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Chomeur

    Informations forums :
    Inscription : Juin 2006
    Messages : 347
    Par défaut
    Salut,

    Ton code a l'air correct et c'est vrai que c'est pas fréquent comme erreur. D'après ce que j'ai pu en lire sur internet, il semble y avoir différentes causes possibles parmi lesquelles des histoires de conversion par rapport aux champs utilisés comme proposait O'Butterlin avec les timestamp ou encore à l'utilisation de Blob ou Clob. Sinon ce qui revient régulièrement c'est un problème de version de ojdbc14.jar, donc essaye d'utiliser d'autres versions.

    Pour aider peut être peux tu nous indiquer la version précise de la BD et celle du driver que tu as pris (ou à défaut le lien où tu l'a trouvé)?

    Bon courage,
    Cordialement,
    Tif

  18. #18
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2006
    Messages : 51
    Par défaut
    hello!

    Sorry suis partis du week end

    Alors, j'ai essayé plusieurs version du driver justement, mais rien ne semble fonctionner. J'ai notamment pris la ojdbc6.jar a utiliser avec le jdk 1.6 que j'ai...mais rien

    Pour ce qui est de la version de ma DB : Oracle Database 10g Express Edition Release 10.2.0.1.0

    J'me demande si une reinstall de la BD pourrait pas remedier a mon probleme (comme c'est souvent le cas avec windowz :p)!

    Sinon le driver je suis allé le chercher ici : http://www.oracle.com/technology/sof...dbc_10201.html

    D'ailleurs faut que je télécharge juste le ojdbc.jar ou tous les fichiers pour chaque version?
    Voila

  19. #19
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 79
    Par défaut
    Bonjour,
    J'ai vu que ton paramètre d'entrée était une chaine de caractère as tu penser passer ta chaine entre deux 'tachaine'
    du type :

    String sql = "SELECT name FROM customer WHERE city='Lausanne'";

  20. #20
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 79
    Par défaut
    De plus, tes colonnes sont déclarées en char et non en varchar.
    Il faudrait peut etre faire un trim de ta valeur name :

    String sql = "SELECT trim(name) FROM customer WHERE city='Lausanne'";

    Je suis pas sur de la syntaxe.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. probleme avec un PreparedStatement
    Par steph60 dans le forum JDBC
    Réponses: 3
    Dernier message: 06/10/2006, 11h45
  2. probleme avec le type LONG ROW
    Par amigauss dans le forum SQL
    Réponses: 10
    Dernier message: 21/09/2006, 10h29
  3. [text] probleme avec simple quote
    Par bor1s dans le forum Langage SQL
    Réponses: 3
    Dernier message: 22/12/2005, 16h03
  4. Probleme avec encodage de simple quote
    Par linkowich dans le forum Langage
    Réponses: 2
    Dernier message: 31/10/2005, 13h16
  5. Réponses: 2
    Dernier message: 30/08/2004, 14h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo