Panne sur fonction base de donnée sqlite
Publié : dim. 22/mai/2022 13:41
Bonjour,
je ne comprend pas un non affichage de données dans une listicon ex ci-dessous
J'ai adapté une procédure ci-dessous pour la connexion et l'affichage (cà fonctionne)
Edit par TazNormand : premier code mis entre balice "Code"
je ne comprend pas un non affichage de données dans une listicon ex ci-dessous
Code : Tout sélectionner
Case #Bt_Recher ; Bouton Recherche
ClearGadgetItems( #Listicon )
reqs.s = "SELECT * FROM "+GetGadgetText( #Combotable )+ " WHERE "
If GetGadgetText( #String_0 ) <> ""
reqs = reqs+ GetGadgetText( #Combo_0 )+" = "+GetGadgetText( #String_0 )
EndIf
If GetGadgetText( #String_1 ) <> ""
reqs = reqs +" " + GetGadgetText( #Combo_1 )+" = "+GetGadgetText( #String_1 )+" AND "
EndIf
If GetGadgetText( #String_1 ) <> ""
reqs = reqs +" " + GetGadgetText( #Combo_2 )+" = "+GetGadgetText( #String_2 )+" AND "
EndIf
reqs = reqs + " ORDER BY DateEnrg ASC"
;---------------------------------------------------------
Debug FirstDatabaseRow( #Classeur ) Retourne 1
If DatabaseQuery( #Classeur, Reqs, #PB_Database_DynamicCursor )
Debug NextDatabaseRow( #Classeur ) Retourne 0 : Alors que j'ai 5 enregistrements dans la table
;---------------------------------------------------------
While NextDatabaseRow( #Classeur )
LigneClasseur = GetDatabaseString( #Classeur, 1 ) + Chr(10)
LigneClasseur + GetDatabaseString( #Classeur, 2 ) + Chr(10)
LigneClasseur + GetDatabaseString( #Classeur, 3 ) + Chr(10)
LigneClasseur + GetDatabaseString( #Classeur, 4 ) + Chr(10)
LigneClasseur + StrF( GetDatabaseFloat( #Classeur, 5 ), 2) + Chr(10)
LigneClasseur + StrF( GetDatabaseFloat( #Classeur, 6 ), 2)
AddGadgetItem( #Listicon, -1, LigneClasseur )
Wend
FinishDatabaseQuery( #Classeur )
Else
Error( 2 )
EndIf
Code : Tout sélectionner
Procedure SessionStart()
;Initialisation de l'environnement SQlite
If Not UseSQLiteDatabase()
Error(0)
EndIf
; NewgestWindow( 0, 0, 624, 400 ) ;Ouverture de la fenetre principale
; DisableForm(#True) ;Desactivation du formulaire de saisie
;Ouverture et lecture de la base de données
If OpenDatabase( #Classeur, GetCurrentDirectory()+"/Newgest.sqlite", "", "", #PB_Database_SQLite)
;Selection de tout les enregistrement de la base de données
;tri sur le champ date de création : Mise en oeuvre de ORDER BY ASC ou DESC
If DatabaseQuery( #Classeur, "select * from Classeur order by DateEnrg asc", #PB_Database_DynamicCursor )
While NextDatabaseRow( #Classeur)
LigneClasseur = GetDatabaseString( #Classeur, 1 ) + Chr(10)
LigneClasseur + GetDatabaseString( #Classeur, 2 ) + Chr(10) ;Libellé de l'opération
LigneClasseur + GetDatabaseString( #Classeur, 3 ) + Chr(10) ;Libellé de l'opération
LigneClasseur + GetDatabaseString( #Classeur, 4 ) + Chr(10) ;Libellé de l'opération
LigneClasseur + StrF( GetDatabaseFloat( #Classeur, 5 ), 2) + Chr(10) ;Recette (Type Float)
LigneClasseur + StrF( GetDatabaseFloat( #Classeur, 6 ), 2) ;Depense (Type Float)
AddGadgetItem( #Listicon, -1, LigneClasseur )
;Pour chaque ligne du tableau on indique l'identifiant automatique de l'enregistrement
SetGadgetItemData( #Listicon, CountGadgetItems( #Listicon )-1, GetDatabaseLong( #Classeur, 0 ) )
Wend
; FinishDatabaseQuery( #Classeur )
Else
Error(2)
EndIf
Else
Error(1)
EndIf
EndProcedure