Probleme executeQuery [Résolu]

elfourbos 66 Messages postés jeudi 24 avril 2003Date d'inscription 10 août 2007 Dernière intervention - 25 janv. 2006 à 22:08 - Dernière réponse : cs_gattous 100 Messages postés vendredi 25 février 2005Date d'inscription 7 octobre 2007 Dernière intervention
- 8 févr. 2006 à 17:02
Bonjour a tous trés cher amis développeur
voila bien comme d'habitude j'arrive avec un problème mais j'ai pu apporter des solutions a d'autres problèmes quand même..8)

Mon problème est le suivant:
je fais une requête ( select id from table where nom=nom; ), mais que ce passe t il si la requete sql ne trouve pas d'id???
que retourn rs = stmt.executeQuery("select id from table where nom=nom;"); //qu'y a t'il dans rs quand la requete donne aucun résultat

merci d'avance pour vos propositions!!!!!!
mat.
Afficher la suite 

Votre réponse

6 réponses

cs_gattous 100 Messages postés vendredi 25 février 2005Date d'inscription 7 octobre 2007 Dernière intervention - 26 janv. 2006 à 16:09
+3
Utile
s'il trouve pas d'id, donc le nom de la colonne est introuvable, il va relever une SQLException, et puisque d'habitude on ecrit le reste du traitement ds la boucle

try{
.....
t1-->rs = stmt.executeQuery("select id from table where nom=nom;");
traitement1...
.....
....
}
catch (SQLException sqle) // ou simple Exception
{
traitement2
}
le programme passe directement a l'instant t1 aau traitement t2.
Autre cas, s'il y a pas d'erreur sql, le champ id existe bien, mais la requete ne retourne aucun resultat, alors rs est tout simplement "null", et tout les traitements qu'on veut faire sur les enregistrements, classiquement contenus ds la boucle "while (rs.Next()) {traitement}", ne se font pas , car tout simplement rs.Next()==false!!
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_gattous
elfourbos 66 Messages postés jeudi 24 avril 2003Date d'inscription 10 août 2007 Dernière intervention - 26 janv. 2006 à 19:48
0
Utile
est ce que tu es sur qu'il te fournit une erreur sql s'il n'y a pas de nom correspondant à la requête. J'ai essayé d'intégré ta technique dans mon code mais il ne se produit toujours rien. Je vais montrer cette partie de code pour que cela deviene plus explicative.

/* code */

try {
ConnecterBD();
stmt = conn.createStatement();
try {
rs = stmt.executeQuery("select idcreator from creator where nomcreator='"+creator+"';");//paramètre passer par la méthode post
}catch (SQLException sqle) {
stmt.executeUpdate("insert into creator (idcreator, nomcreator) values ('','"+creator+"');");
}
ce code est effectué dans le doPost (servlet) et lors de la creation de la page html, tout est ok sans erreur, mais dans la base pas d'entrée ajouté, a croire qu'il ne passe pas dans le catch.
en fait, je voudrais créer une entrée s'il n'en trouve pas une déjà présente!!
merci d'avance!!
mat.
Commenter la réponse de elfourbos
cs_gattous 100 Messages postés vendredi 25 février 2005Date d'inscription 7 octobre 2007 Dernière intervention - 27 janv. 2006 à 12:03
0
Utile
Essaie plutot ça

try {

ConnecterBD();

stmt = conn.createStatement();





rs = stmt.executeQuery("select
idcreator from
creator where nomcreator='"+creator+"';");

if (rs.Equals(null)) // Ou if (rs==null) si tu veux

{



stmt.executeUpdate("insert into creator (idcreator, nomcreator) values
('','"+creator+"');");

}



}catch (Exception sqle) {



System.out.println("Une erreur s'est présentée, en
voici la trace :"+ex.getStackTrace());

}
Commenter la réponse de cs_gattous
cs_gattous 100 Messages postés vendredi 25 février 2005Date d'inscription 7 octobre 2007 Dernière intervention - 8 févr. 2006 à 16:21
0
Utile
Ce serait plutot gentil de dire si ça a marché ou pas.....
Commenter la réponse de cs_gattous
elfourbos 66 Messages postés jeudi 24 avril 2003Date d'inscription 10 août 2007 Dernière intervention - 8 févr. 2006 à 16:30
0
Utile
Excuse moi, j'était encore a fond dans cet appli., Alors le rs.wasNull() n'avait pas trop l'air de marché bizarrement, alors comme tu me l'a conseillé j'ai effectué le reste de mon traitement dans le catch ( c'est pas trop optimisé ) mé ca me pose pas de problème car la requête s'executè mais bloquait le programme.
Voila merci beaucoup encore pour ton aide
mat.
Commenter la réponse de elfourbos
cs_gattous 100 Messages postés vendredi 25 février 2005Date d'inscription 7 octobre 2007 Dernière intervention - 8 févr. 2006 à 17:02
0
Utile
Merci, je voulais juste m'informer, pour voir si t'as enkore besoin d'aide ou pas.
Commenter la réponse de cs_gattous

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.