Page 1 sur 1

[R] Erreur lorsqu'une requete SQL ne trouve rien

Posté : sam. 26 mai 2012 22:09
par Utilisateur 3309 supprimé
Bonjour, j'ai un petit probleme lorsqu'une requete SQL ne retourne rien j'ai un message d'erreur.

Voici le code que j'utilise:

Code : Tout sélectionner

    $query = "SELECT * FROM articles WHERE code ='J0250'"

    $adoCon = ObjCreate("ADODB.Connection")
    $adoCon.Open("Driver={Microsoft Access Driver (*.mdb, *.accdb)}; DBQ=" & $dbname) ;Use this line if using MS Access 2003 and lower
    ;$adoCon.Open ("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & $dbname) ;Use this line if using MS Access 2007 and using the .accdb file extension
    $adoRs = ObjCreate("ADODB.Recordset")
    $adoRs.CursorType = 1
    $adoRs.LockType = 3
    $adoRs.Open($query, $adoCon)

    $Code = $adoRs.Fields(0).value
Mais lorsque la requete SQL ne trouve pas ce que je recherche, cette ligne donne une erreur:
$Code = $adoRs.Fields(0).value
The requested action with this object has failed

Donc comment gérer l'affaire lorsque la requette ne trouve rien dans la base ?

Re: [..] Erreur lorsqu'une requete SQL ne trouve rien

Posté : sam. 26 mai 2012 22:34
par jchd
C'est simple : s'assurer que l'on n'accède pas à l'aveugle un objet non existant.

Code : Tout sélectionner

    If $AdoRs.EOF Then
        $AdoRs = 0
        Return SetError( <code(s) indiquant un résultat vide> )
    Else
        ; traitement du resultset
    EndIf
 

Re: [..] Erreur lorsqu'une requete SQL ne trouve rien

Posté : dim. 27 mai 2012 11:11
par Utilisateur 3309 supprimé
Ok merci, j'ai compris le principe :D

j'ai fait comme ceci et ca a l'air de focntionner:

Code : Tout sélectionner

If Not $adoRs.EOF Then

$Code = $adoRs.Fields(0).value
.
.
.
Else
   MsgBox(1,"Erreur","Article inexistant dans la base de données")
EndIf
 

Re: [..] Erreur lorsqu'une requete SQL ne trouve rien

Posté : dim. 27 mai 2012 11:55
par jchd
L'erreur vient peut-être d'avant, on bien MS n'implémente pas EOF() pour Access (et puis Access :lol: ) .
Que donne un test d'erreur (If @error then ConsoleWrite(...) ) sur les instructions précédentes ?

Re: [..] Erreur lorsqu'une requete SQL ne trouve rien

Posté : dim. 27 mai 2012 11:57
par Utilisateur 3309 supprimé
j'ai édité mon message précédent. ca fonctionne bien de cette manière 8)