2006/10/8, Manuel NAUDIN <[EMAIL PROTECTED]>:
2006/10/8, une.bouteille.a.la.mer <[EMAIL PROTECTED]>:
> Bonsoir,
>
> 2006/10/7, une.bouteille.a.la.mer  <[EMAIL PROTECTED] >:
> >
> > BONSOIR
> >
> > Soit une requête
> >
> > maRequete = maConnexion.CreateStatement()
> > oDonnees=maRequete.executeQuery(instrSQL)
> >
> >
> > Lorque la requête ne renvoie pas de résultats (tout simplement parce qu'il
> > n'y en a pas pas !)
> >
> > Lorsque je demande par exemple l'affichage par exemple de
> > Resultat = oDonnees.getString(3)
> >
> > J'obtiens une erreur SQLException: No data is available"
> > Normal, sans doute
> >
> > Mais comment faire pour contourner ce problème ?
> >
> > J'ai essayé
> >
> > If Not IsNull(oDonnees) Then
> > Resultat = oDonnees.getString(3)
> > End If
> >
> > Mais cela ne fonctionne pas
>
>
> Deux pistes :
> - un select count(*) avant qui doit TJRS retourner un résultat.
> - odonnées.count() ??? je sais pas si cette fonction existe ?
>
> Yves
>
> > Merci de votre aide
> >
>
>
>
> SELECT COUNT(*)  dans ma requête SQL ? Je ne vois pas trop
>
> Peut-être me suis-je mal exprimé
>
> J'exécute ma requête
> Soit il y a des résultats, là pas de problème
> Resultat = oDonnees.getString(3)
>
> En revanche s'il n'y a pas de résultats
> Resultat = oDonnees.getString(3)
> me retourne l'erreur suivante : SQLException: No data is available" logique...
>
> logique mais fort ennuyeux...
>
> Aussi je cherche à éviter le problème
>
> du genre SI data available ALORS me retourner les résultats de la requête 
SINON ne rien faire
>
> mais je ne sais pas comment traduire cela
>
> J'avais essayé
>
> If Not IsNull(oDonnees) Then
> Resultat = oDonnees.getString(3)
> End If
>
> Mais cela ne fonctionne pas
>
tu peux essayer :

Statement = Connection.createStatement()
ResultSet = Statement.executeQuery("SELECT CustomerNumber FROM Customer")
If Not IsNull(ResultSet) Then
   While ResultSet.next
      MsgBox ResultSet.getString(1)
   Wend
End If

ResultSet.next sera faux à la première itération si le ResultSet est vide.

je voulais dire que ResultSet.next sera toujours faux si le resultset
est vide, et donc la boucle WHILE ne sera jamais parcourue.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Répondre à