Le résultat d'une requête sql sur une somme

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
anissa
Messages : 136
Inscription : mer. 13/oct./2010 15:43

Le résultat d'une requête sql sur une somme

Message par anissa »

C'est bizarre, je n'arrive pas à comprendre pourquoi, j'ai corrigé le problème, ça marche, mais je ne suis pas convaincue... Dites moi ce que vous en pensez .... Je suis curieuse de savoir ..

Explication: Il s'agit simplement de calculer la somme du total TTC (un champ d'une table Base sqlite). Ce champ est déclaré dans la table comme ttc quad. Je dois récupérer le résultat dans une variable appelée Wttc déclarée aussi en quad.

Voici le code qui plante:

Code : Tout sélectionner

Wsql="Select SUM(ttc) From MaTable Where ttc>0"
CheckDataBaseQuery(0,wSql)
If NextDataBaseRow(0)
   wttc=GetDataBaseQuad(0,0)
EndIf
Et voici le code qui marche:

Code : Tout sélectionner

Wsql="Select SUM(ttc) From MaTable Where ttc>0"
CheckDataBaseQuery(0,wSql)
If NextDataBaseRow(0)
   wttc=GetDataBaseLong(0,0)
EndIf
C'est un peu comme le jeu des 7 erreurs n'est ce pas? Bon! Vous voyez la différence
entre ces deux codes? Pourquoi GetDataBaseQuad ne marche pas? Pourtant, c'est du numérique
aussi..

Si vous avez besoin de plus de details sur la base données et ma table, je suis prêt à vous
donner tous les détails (bien que cela ne me semble pas nécessaire)

Alors? Quelqu'un a une idée?
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: Le résultat d'une requête sql sur une somme

Message par djes »

Tu as quel type de plantage?
Sinon, il y a la fonction DatabaseColumnType(#BaseDeDonnees, Colonne) qui pourrait t'être utile. Tu as bien déclaré le type de ta variable de retour? Par défaut, c'est du .i (entier sur 4 ou 8 octets suivant x86/x64)
nash
Messages : 42
Inscription : ven. 07/nov./2008 18:02

Re: Le résultat d'une requête sql sur une somme

Message par nash »

du maniere plus generale
je procede comme ça
en esperant vous etre utile
sinon peut etre a d'autres

Code : Tout sélectionner

;n$=nom de la base
;t$=nom de la table
;c$=nom de colonne
;x$=nom de la colonne a calculer
;n=somme ou nombre calculé
UseSQLiteDatabase()
OpenDatabase(0,"+n$+","","")
DatabaseQuery(0,"select * from "+t$+"")
For i=0 To DatabaseColumns(0)-1
c$=DatabaseColumnName(0,i)
If c$=x$
t$=DatabaseColumnType(0,i)
OpenDatabase(1,Shandradb,"","")
Select t$
Case #PB_Database_Long
DatabaseQuery(1,"select sum("+c$+") from  "+t$+" where "+c$+">0")
Case  #PB_Database_String
DatabaseQuery(1,"select count("+c$+") from  "+t$+" where "+c$+"<>''")
;Case #PB_Database_Double
;Case #PB_Database_Quad
EndSelect
While NextDatabaseRow(1):n=GetDatabaseLong(1,0):Wend
FinishDatabaseQuery(1):CloseDatabase(1)
EndIf
Next
FinishDatabaseQuery(0):CloseDatabase(0)
Répondre