Page 1 sur 1
Résultat d'une requête SQL
Publié : ven. 19/févr./2016 15:18
par Aliass
Bonjour à tous,
Ma question va surement paraitre idiote mais je bloque sur le problème depuis quelques jours

sans trouver d’ouverture vers une solution…
Comment récupérer le résultat d’une requête de type : "SELECT COUNT(*) FROM Toto WHERE Toto.date LIKE '"+filtre.s+"%'"
Nota : Exemple de valeur pouvant être présente dans la variable filter, « 20100219 »
Précision, j’utilise la bibliothèque SQLite.
Dans un browser (sqlitebrowser) j'obtiens bien le nombre d'enregistrement qui répondent au critère.
Merci d'avance pour vos réponses.
Re: Résultat d'une requête SQL
Publié : ven. 19/févr./2016 15:47
par falsam
SELECT COUNT(*) ne pourra retourner qu'une seule ligne résultat dont la valeur correspondra aux nombres d'enregistrements trouvé avec le critère WHERE Toto.date LIKE '"+filtre.s+"%'"
Dans ton code je pense que tu as un truc du style
ReqSql contenant ta requête SQL.

Pour mémo, le résultat d'une requête aura pour résultat un tableau de x Lignes (Row) * y Colonnes
La première colonne démarre avec le numéro 0
Normalement il faudrait parcourir ce tableau avec un While par exemple en utilisant la fonction NextDatabase
Row() comme cet exemple
Code : Tout sélectionner
While NextDatabaseRow(#Database)
Debug GetDatabaseString(#Database, 0) ;Pour une colonne de type Alpha-Numérique
Debug GetDatabaseLong(#Database, 1) ;Pour une colonne de type Integer
Next
Dans ton cas ça va etre plus simple car il n'y qu'une seule ligne contenant une seule colonne avec une valeur numérique.
Le code sera
Code : Tout sélectionner
NextDatabaseRow(#Database)
Debug GetDatabaseLong(#Database, 0)
Re: Résultat d'une requête SQL
Publié : ven. 19/févr./2016 16:04
par Aliass
Merci pour cette explication, je viens de comprendre mon erreur, j'étais resté scotché sur l'utilisation de "NextDatabaseRow" dans une boucle...
Je viens d'effectuer quelques tests en me basant sur tes explications toutefois, je n'arrive pas à obtenir le résultat en utilisant
- GetDatabaseString(#labase,1)
- GetDatabaseLong(#labase,1)
Apparemment, pour que cela fonctionne, je dois utiliser l'indice 0 et pas le 1 si non, la valeur de retour est soit vide (cas du string) ou 0 (cas du long)
Merci pour cette lampe allumée dans la nuit

Re: Résultat d'une requête SQL
Publié : ven. 19/févr./2016 16:10
par falsam
Aliass a écrit :Apparemment, pour que cela fonctionne, je dois utiliser l'indice 0 et pas le 1 si non, la valeur de retour est soit vide (cas du string) ou 0 (cas du long)
Oops désolé, il y a une erreur dans mes explications. Tu as raison la première colonne du résultat de la requête commence à l'indice 0. D'autant plus ballot que je donne un exemple avec l'indice 0 !!