Résultat d'une requête SQL

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Aliass
Messages : 23
Inscription : lun. 17/sept./2012 8:09

Résultat d'une requête SQL

Message par Aliass »

Bonjour à tous,

Ma question va surement paraitre idiote mais je bloque sur le problème depuis quelques jours :cry: 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.
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Résultat d'une requête SQL

Message 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

Code : Tout sélectionner

DatabaseQuery(#Database, ReqSql)
ReqSql contenant ta requête SQL.

:idea: 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 NextDatabaseRow() 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)
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Aliass
Messages : 23
Inscription : lun. 17/sept./2012 8:09

Re: Résultat d'une requête SQL

Message par Aliass »

Merci pour cette explication, je viens de comprendre mon erreur, j'étais resté scotché sur l'utilisation de "NextDatabaseRow" dans une boucle... :oops:

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 :D
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Résultat d'une requête SQL

Message 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 !!
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Répondre