Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1513 connectés 

  FORUM HardWare.fr
  Programmation

  [Java] Exception lancée alors que ça devrais passer !

 


 Mot :   Pseudo :  
 
 Page :   1  2  3
Page Précédente
Auteur Sujet :

[Java] Exception lancée alors que ça devrais passer !

n°160596
El_gringo
Posté le 17-06-2002 à 11:31:51  profilanswer
 

J'comprend pas...
Je fais le truc suivant:

Code :
  1. ResultSet rs = stmt.executeQuery (sqlQuery);
  2. // sqlQuery contient : select * from UTILISATEURS where (UTIL=\`MC\`)
  3. // Si aucun enregistrement n'a été trouvé
  4. if (!rs.next ())
  5.    return false;
  6. String loginFromTable = rs.getString (1); // Lance une exception (de même pour rs.getString ("UTIL" );


Qqn voit ce qu'il se passe ?
(je suis sur qu'il existe dans ma table, un enregistrement où UTIL est à "MC"...)


Message édité par El_gringo le 17-06-2002 à 11:32:20
mood
Publicité
Posté le 17-06-2002 à 11:31:51  profilanswer
 

n°160600
greg@frees​tarthu
Posté le 17-06-2002 à 11:33:06  profilanswer
 

bah kesk'elle dit ton exception?

n°160603
darklord
You're welcome
Posté le 17-06-2002 à 11:34:48  profilanswer
 

C'est quoi l'exception. Tu te boolayétise? :heink:


---------------
Just because you feel good does not make you right
n°160616
gfive
Posté le 17-06-2002 à 11:39:54  profilanswer
 

aaaah, lala....La boulayétisation du lundi matin, quelque part, je comprends un peu, Dark, sois indulgent! :D:D

n°160619
El_gringo
Posté le 17-06-2002 à 11:40:29  profilanswer
 

2 secondes, je suis en train de voir un truc.
En fait, je gère mal mes exception; ça fait que je récupérais pas la SQL Exception, d'ou, une message d'erreur pas explicite.
Mais là, je viens de voir la SQLExecption que me rend le getString(1);
SQLState : S1002
Message  : Index de descripteur non valide
ça veut dire quoi ça !?


Message édité par El_gringo le 17-06-2002 à 11:40:44
n°160621
darklord
You're welcome
Posté le 17-06-2002 à 11:42:58  profilanswer
 

Montre tout le code qui gère la query + vérifie le contenu de ta DB + verfie tes fichiers de conf pour te loguer à la bd


---------------
Just because you feel good does not make you right
n°160625
darklord
You're welcome
Posté le 17-06-2002 à 11:44:21  profilanswer
 

c koi la strcuture de ta première colonne? Si c'est pas une string ou équivalent c'est normal ...


---------------
Just because you feel good does not make you right
n°160630
El_gringo
Posté le 17-06-2002 à 11:48:51  profilanswer
 

Tout de suite monsieur Dark :
Dans ma classe:

Code :
  1. // Nom de la table
  2.     private static final String TABLE_USERS          = "UTILISATEURS";
  3.     private static final String ROW_UTIL       = "UTIL";


Dans une méthode:

Code :
  1. String sqlQuery = "select * from " + TABLE_USERS + " where (" + ROW_UTIL + "='" + this.login + "')";       
  2.         try {
  3.             java.sql.Statement stmt = con.createStatement ();
  4.             ResultSet rs = stmt.executeQuery (sqlQuery);
  5.             if (!rs.next () && !rs.isFirst ())
  6.                 return false;
  7.            
  8.             // Si le mot de passe entré ne correspond pas à celui dans la base de donnée             
  9.             if (!initFromResultSet (rs))
  10.                 return false;
  11.             this.isLoaded = true;
  12.             stmt.close ();
  13.         }
  14.         catch (SQLException e) {
  15.             throw new JLdsDataException ("Une erreur est survenue lors de l'execution/lecture des résultats, de la requète :\n\t" + sqlQuery, e);
  16.         }


Méthode initFromResultSet:

Code :
  1. private boolean initFromResultSet (ResultSet rs) throws SQLException, JLdsServletException {
  2.         String loginFromTable = rs.getString (1);
  3.         String pwdFromTable   = rs.getString (2);
  4.         String nameFromTable  = rs.getString (3);
  5.         String cptFromTable   = rs.getString (4);
  6.         String configFromTable= rs.getString (5);
  7.         //et d'autres trucs......
  8.         return true;
  9. }


 
Quand j'execute dans un analyseur SQL, la requête:
select * from UTILISATEURS where (UTIL='MC';);
ça me rend bien mon enregistrement.
 
Quand, par mon prog, je remplace le contenu de sqlQuery, pour y mettre : "select * from UTILISATEURS"
le getString(1); passe sans pb, donc ma connection est OK !


Message édité par El_gringo le 17-06-2002 à 11:52:51
n°160637
darklord
You're welcome
Posté le 17-06-2002 à 11:51:39  profilanswer
 

lorsque tu fais rs.next() pour la première fois, si ca te retourne true ce sera TOUJOURS le premier élément (inutile de faire isFirst())
 
Tu as l'exception sur quelle ligne?
 
Ouvre MySQL ou SQLPlus ou je sais pas quoi et lance la query a la mano pour voir le résultat
 
arrête de m'appeler monsieur :D


Message édité par darklord le 17-06-2002 à 11:52:00

---------------
Just because you feel good does not make you right
n°160642
El_gringo
Posté le 17-06-2002 à 11:54:24  profilanswer
 

DarkLord a écrit a écrit :

lorsque tu fais rs.next() pour la première fois, si ca te retourne true ce sera TOUJOURS le premier élément (inutile de faire isFirst())
 
Tu as l'exception sur quelle ligne?
 
Ouvre MySQL ou SQLPlus ou je sais pas quoi et lance la query a la mano pour voir le résultat
 
arrête de m'appeler monsieur :D  




 
J'ai édité mon, message: g déja exécuté à la main ! c ok.
(pour le isFirst, je m'en doutais, ms ça coute rien. Enfin, maintenant que je suis sur, je l'enlève !)

mood
Publicité
Posté le 17-06-2002 à 11:54:24  profilanswer
 

n°160647
El_gringo
Posté le 17-06-2002 à 11:56:43  profilanswer
 

DarkLord a écrit a écrit :

lorsque tu fais rs.next() pour la première fois, si ca te retourne true ce sera TOUJOURS le premier élément (inutile de faire isFirst())
 
Tu as l'exception sur quelle ligne?
 
Ouvre MySQL ou SQLPlus ou je sais pas quoi et lance la query a la mano pour voir le résultat
 
arrête de m'appeler monsieur :D  




 
l'exception est dès que j'essaye de récupérer qqch depuis mon ResultSet.
que ça soit un rs.getString(1), un rs.getString("UTIL" ), un getString(2), ou autre, ça merde !
le ResultSet que je récupère depuis mon executeQuery est bisard je crois !

n°160651
darklord
You're welcome
Posté le 17-06-2002 à 11:59:48  profilanswer
 

balance le script SQL que tu as utilisé pour créer ta table


---------------
Just because you feel good does not make you right
n°160661
El_gringo
Posté le 17-06-2002 à 12:04:31  profilanswer
 

DarkLord a écrit a écrit :

balance le script SQL que tu as utilisé pour créer ta table  




 
tout bête:

Code :
  1. create table UTILISATEURS (UTIL varchar(9), PASSWORD varchar(9),NOMUTIL varchar(21),CPT smallint,CONFIG varchar(3));


Message édité par El_gringo le 17-06-2002 à 12:04:41
n°160663
darklord
You're welcome
Posté le 17-06-2002 à 12:05:31  profilanswer
 

si tu peux mettre des () là. De toutes façons il a fait la query a la mano et ca a renvoyé le bon résultat
 
enfin c'est ce qu'il dit :)


---------------
Just because you feel good does not make you right
n°160664
El_gringo
Posté le 17-06-2002 à 12:05:46  profilanswer
 

greg@freestarthu a écrit a écrit :

je suis pas convaincu que les () soit correctes là:
select * from UTILISATEURS where (UTIL='MC');
 
?  




 
ça passe dans l'interpréteur SQL de SQLServer, et j'ai déja essayé sans...

n°160665
darklord
You're welcome
Posté le 17-06-2002 à 12:05:57  profilanswer
 

greg -> Ignoble fanfaront tu as effacé ton post?


---------------
Just because you feel good does not make you right
n°160666
darklord
You're welcome
Posté le 17-06-2002 à 12:06:16  profilanswer
 

oh le petit vilain  [:tapai]


---------------
Just because you feel good does not make you right
n°160668
El_gringo
Posté le 17-06-2002 à 12:06:39  profilanswer
 

DarkLord a écrit a écrit :

si tu peux mettre des () là. De toutes façons il a fait la query a la mano et ca a renvoyé le bon résultat
 
enfin c'est ce qu'il dit :)  




 
ha, non, commences pas !
Je suis pas un noeu-noeud. Je sais faire une requête SQL !

n°160669
greg@frees​tarthu
Posté le 17-06-2002 à 12:06:49  profilanswer
 

DarkLord a écrit a écrit :

greg -> Ignoble fanfaront tu as effacé ton post?  



oué je me suis rendu compte de la connerie de ce que je disais:)

n°160671
greg@frees​tarthu
Posté le 17-06-2002 à 12:07:30  profilanswer
 

par contre déjà je mettrai pas le *, je specifierai les colonnes dans la requete
mais bon ça n'a rien à voir non plus :)

n°160672
El_gringo
Posté le 17-06-2002 à 12:07:33  profilanswer
 

DarkLord a écrit a écrit :

greg -> Ignoble fanfaront tu as effacé ton post?  




 
m'en fout, je l'ai serré qd même ! il est gravé dans ma réponse à son post ! :D

n°160673
El_gringo
Posté le 17-06-2002 à 12:07:50  profilanswer
 

greg@freestarthu a écrit a écrit :

par contre déjà je mettrai pas le *, je specifierai les colonnes dans la requete
mais bon ça n'a rien à voir non plus :)  




 
pourquoi !? vu que je veux toutes les colones, pourquoi m'emmerder à tt taper !?


Message édité par El_gringo le 17-06-2002 à 12:08:17
n°160675
greg@frees​tarthu
Posté le 17-06-2002 à 12:09:09  profilanswer
 

el_gringo a écrit a écrit :

 
 
pourquoi !? vu que je veux toutes les colones, pourquoi m'emmerder à tt taper !?  



pour etre sur de les avoir dans le bon ordre pardi
(surtout que tu fais des getString(i) ...)

n°160679
darklord
You're welcome
Posté le 17-06-2002 à 12:12:31  profilanswer
 

greg@freestarthu a écrit a écrit :

pour etre sur de les avoir dans le bon ordre pardi
(surtout que tu fais des getString(i) ...)  




 
 :jap:  :jap:  :jap:


---------------
Just because you feel good does not make you right
n°160680
El_gringo
Posté le 17-06-2002 à 12:13:17  profilanswer
 

greg@freestarthu a écrit a écrit :

pour etre sur de les avoir dans le bon ordre pardi
(surtout que tu fais des getString(i) ...)  




 
T'as raison, c'est fait !
Par contre, ça n'arrange pas mon problème !  :(

n°160682
darklord
You're welcome
Posté le 17-06-2002 à 12:16:07  profilanswer
 

envoie un peu la stacktrace stp


---------------
Just because you feel good does not make you right
n°160693
El_gringo
Posté le 17-06-2002 à 12:24:05  profilanswer
 

DarkLord a écrit a écrit :

envoie un peu la stacktrace stp  




 
la stack trace de l'execution de mon prog ? Je la trouve ds netbean ? (j'utilise jammais ça, ça sert à quoi !??)

n°160695
darklord
You're welcome
Posté le 17-06-2002 à 12:25:34  profilanswer
 

dans ton catch machin chose là tu ajoute
 
e.printStackTrace();
 
et tu copy-paste ce que la console recrache à l'exécution


---------------
Just because you feel good does not make you right
n°160696
darklord
You're welcome
Posté le 17-06-2002 à 12:25:58  profilanswer
 

DarkLord a écrit a écrit :

dans ton catch machin chose là tu ajoute
 
e.printStackTrace();
 
et tu copy-paste ce que la console recrache à l'exécution  




 
avant de faire ton throw machin chose


---------------
Just because you feel good does not make you right
n°160699
El_gringo
Posté le 17-06-2002 à 12:30:21  profilanswer
 

ça !?

Code :
  1. java.sql.SQLException: [Microsoft][ODBC SQL Server Driver]Index de descripteur non valide
  2.         at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6106)
  3.         at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:6263)
  4.         at sun.jdbc.odbc.JdbcOdbc.SQLGetDataString(JdbcOdbc.java:3307)
  5.         at sun.jdbc.odbc.JdbcOdbcResultSet.getDataString(JdbcOdbcResultSet.java:5494)
  6.         at sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:342)
  7.         at com.damaris.database.Utilisateur.initFromResultSet(Utilisateur.java:195)
  8.         at com.damaris.database.Utilisateur.getDataFromTable(Utilisateur.java:182)
  9.         at com.damaris.ldsweb.JLdsWeb.attachVisiteur(JLdsWeb.java:174)
  10.         at com.damaris.ldsweb.JLdsWeb.processRequest(JLdsWeb.java:80)
  11.         at com.damaris.ldsweb.JLdsWeb.doPost(JLdsWeb.java:135)
  12.         at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
  13.         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
  14.         at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:404)
  15.         at org.apache.tomcat.core.Handler.service(Handler.java:286)
  16.         at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
  17.         at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:797)
  18.         at org.apache.tomcat.core.ContextManager.service(ContextManager.java:743)
  19.         at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:210)
  20.         at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)
  21.         at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:498)
  22.         at java.lang.Thread.run(Thread.java:536)


 
ça peut t'être utile !?

n°160702
greg@frees​tarthu
Posté le 17-06-2002 à 12:32:10  profilanswer
 

el_gringo a écrit a écrit :

ça !?  
ça peut t'être utile !?  




ben oui :))

n°160747
darklord
You're welcome
Posté le 17-06-2002 à 13:35:15  profilanswer
 

y a quoi a la ligne 195 de ton code?


---------------
Just because you feel good does not make you right
n°160751
darklord
You're welcome
Posté le 17-06-2002 à 13:37:11  profilanswer
 

el_gringo a écrit a écrit :

ça !?
ça peut t'être utile !?  




 
Je trouve que tu poses des questions vraiment bizarres parfois. Oui c'est utile, surtout qd t'as un problème (en tout cas moi c'est la première chose que je regarde.


---------------
Just because you feel good does not make you right
n°160759
El_gringo
Posté le 17-06-2002 à 14:00:30  profilanswer
 

DarkLord a écrit a écrit :

 
 
Je trouve que tu poses des questions vraiment bizarres parfois. Oui c'est utile, surtout qd t'as un problème (en tout cas moi c'est la première chose que je regarde.  




 
Bah, je dis ça parce que les seuls renseignements qui me paraissent utiles la dedant, je vous les avaient déja donnés, à savoir:
le message de l'exception : Index de descripteur non valide  
le moment ou ça se passe : au premier getString de mon ResultSet (ligne 195)

n°160766
greg@frees​tarthu
Posté le 17-06-2002 à 14:15:41  profilanswer
 

Citation :

What is an Invalid Descriptor Index?  
This error is caused by permission violations, an attempt to access a blob field on the SQL server with an ODBC driver, or an attempt to access long records with decimal/numeric data.

(http://www.tconsult.com/developer/descriptor.asp)

n°160806
darklord
You're welcome
Posté le 17-06-2002 à 14:37:12  profilanswer
 

essaie de remplacer tes getString() par getObject()


---------------
Just because you feel good does not make you right
n°160811
HappyHarry
Posté le 17-06-2002 à 14:38:40  profilanswer
 

DarkLord a écrit a écrit :

essaie de remplacer tes getString() par getObject()  




 
marche seulement avec un driver jdbc 2.0 compliant

n°160813
El_gringo
Posté le 17-06-2002 à 14:39:47  profilanswer
 

HappyHarry a écrit a écrit :

 
 
marche seulement avec un driver jdbc 2.0 compliant  




 
'faut que je reste compatible avec un maximum de drivers.

n°160814
El_gringo
Posté le 17-06-2002 à 14:40:22  profilanswer
 

greg@freestarthu a écrit a écrit :

Citation :

What is an Invalid Descriptor Index?  
This error is caused by permission violations, an attempt to access a blob field on the SQL server with an ODBC driver, or an attempt to access long records with decimal/numeric data.

(http://www.tconsult.com/developer/descriptor.asp)  




 
Merci. J'y ai cru un moment, ms ça ne venait pas de ça.

n°160824
El_gringo
Posté le 17-06-2002 à 14:44:06  profilanswer
 

ça y est, ça marche.
Vous allez pas me croire tellement c bisard. Moi même g vachement du mal à y croire, ms maintenant, c sur. Je vous jure, je suis pas trop du genre à affirmer qqch, sans avoir vérifié 50 fois.
Quand mon ResultSet s'appel "rs" , ça merde.
Si je l'appel autrement ("res" ), que je recompile, et que je relance, ça marche !!!
Qqn y comprend qqch !??

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [Java] Exception lancée alors que ça devrais passer !

 

Sujets relatifs
(JAVA) Comment faire des cases en cascades en Java ?![java - applet] exécuter une commande sur le serveur web ? !
Problème de java sur un page html.... et j'ai rien fait de mal !!Problème de java sur un page html....
[Java] Conseil pour un bouquin de dev GUI Swing[java] dernière occurence d'un caractère dans une String
(JAVA]couleur + fonte JLabel[Java] obtenir le code ASCII d'un caractère
[Java] pb avec les Exceptions[C --> Java] Quel est l'équivalent d'un enum
Plus de sujets relatifs à : [Java] Exception lancée alors que ça devrais passer !


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR