Page 1 sur 1

[R] Sqlite et recordset à un résultat

Posté : jeu. 29 sept. 2011 15:26
par scorp84
Bonjour,

Voici ma requête :

Code : Tout sélectionner

_SQlite_Query (-1, "SELECT etat FROM  clients WHERE client='1985';", $hQuery)
$res=""
While _SQLite_FetchData ($hQuery, $aRow) = $SQLITE_OK
     $res= $aRow[0]
WEnd

MsgBox(0,"etat",$res)
Cette requête me permet d'obtenir l'état du client 1985.

Est il possible quand une requête envoie un résultat "simple" d'éviter de passer par un while et de valoriser le résultat directement ?

Code : Tout sélectionner

_SQlite_Query (-1, "SELECT etat FROM  clients WHERE client='1985';", $hQuery)
$res=???
Merci d'avance.

Amicalement.

BM

Re: [..] Sqlite et recordset à un résultat

Posté : jeu. 29 sept. 2011 16:07
par ZDS
Bonjour,

Tu peux très bien le faire. Mais ton cas particulier ne reflète pas la généralité des requêtes, qui peuvent avoir plusieurs résultats. Dans ton cas, tu n'en as qu'un MAIS je te conseille de gérer le cas où tu en aurais plusieurs ou aucun.

Code : Tout sélectionner

Func _getOneResultFromSQliteQuery($bdd, $sql, ByRef $req)
    Local $ligne
    _SQlite_Query($bdd, $sql, $req)
    If _SQLite_FetchData($req, $ligne) <> $SQLITE_OK Then SetError(1,0,"")
    Local $resultat = $ligne[0]
    If _SQLite_FetchData($req, $ligne) = $SQLITE_OK Then SetError(2,0,"")
    Return $resultat
EndFunc
Pas testé car aucune BdD sous la main. Mais le principe est simple :
- Si pas de résultat, @error = 1
- Si plus d'un résultat, @error = 2
- Si un seul résultat, retour du résultat tout bonnement ^^

A bientôt !

Re: [..] Sqlite et recordset à un résultat

Posté : jeu. 29 sept. 2011 16:21
par scorp84
Excellent : tout pile ce que je voulais :-)

T'es trop fort hi hi hi

Merci ++++

Amicalement.

BM