FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Form(résolu)
KGF_dll - nouvelles versions - Page 2 Emptypar leclode Hier à 17:59

» trop de fichiers en cours
KGF_dll - nouvelles versions - Page 2 Emptypar Marc Hier à 11:42

» Bataille navale SM
KGF_dll - nouvelles versions - Page 2 Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Une calculatrice en une ligne de programme
KGF_dll - nouvelles versions - Page 2 Emptypar jean_debord Ven 26 Avr 2024 - 8:01

» Gestion d'un système client-serveur.
KGF_dll - nouvelles versions - Page 2 Emptypar Pedro Jeu 25 Avr 2024 - 19:31

» Les maths du crocodile
KGF_dll - nouvelles versions - Page 2 Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
KGF_dll - nouvelles versions - Page 2 Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
KGF_dll - nouvelles versions - Page 2 Emptypar Froggy One Mer 24 Avr 2024 - 18:38

» Dessine-moi une galaxie
KGF_dll - nouvelles versions - Page 2 Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
KGF_dll - nouvelles versions - Page 2 Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
KGF_dll - nouvelles versions - Page 2 Emptypar papydall Dim 21 Avr 2024 - 23:30

» 2D_fill_color(résolu)
KGF_dll - nouvelles versions - Page 2 Emptypar leclode Sam 20 Avr 2024 - 8:32

» Consommation gaz électricité
KGF_dll - nouvelles versions - Page 2 Emptypar leclode Mer 17 Avr 2024 - 11:07

» on_key_down (résolu)
KGF_dll - nouvelles versions - Page 2 Emptypar leclode Mar 16 Avr 2024 - 11:01

» Sous-programme(résolu)
KGF_dll - nouvelles versions - Page 2 Emptypar jjn4 Jeu 4 Avr 2024 - 14:42

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Avril 2024
LunMarMerJeuVenSamDim
1234567
891011121314
15161718192021
22232425262728
2930     
CalendrierCalendrier
Le deal à ne pas rater :
Pokémon EV06 : où acheter le Bundle Lot 6 Boosters Mascarade ...
Voir le deal

 

 KGF_dll - nouvelles versions

Aller en bas 
+6
papydall
Marc
jean_debord
Minibug
JP06
Klaus
10 participants
Aller à la page : Précédent  1, 2, 3 ... 8 ... 14  Suivant
AuteurMessage
Minibug

Minibug


Nombre de messages : 4566
Age : 57
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

KGF_dll - nouvelles versions - Page 2 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 2 EmptyLun 25 Oct 2021 - 11:48

Ahhhh merci Marc !

Je commençais à désespérer...

Je sais parfaitement comment utiliser KGF et comment il fonctionne... Wink
Mais là il y a donc bien un problème ! Mad
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


Nombre de messages : 12274
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions - Page 2 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 2 EmptyLun 25 Oct 2021 - 12:16

KGF.dll V9.57 du 25/10/2021

Nouveautés:
- nouvelle fonction WhoLaunchedMe

Modules modifiés:
KGF.dll

La doc suivra.

Voici l'utilisation:
Code:
dim res%, s$
dll_on "KGF.dll"
s$ = string$(255," ")
res% = dll_call1("WhoLaunchedMe",adr(s$))
message s$
end

Lancez-le par l'éditeur, puis générez un EXE et lancez l'EXE...

Merci, Marc ! En effet, il semble y avoir un problème sur certains systèmes. Là, je le crains, ce n'est pas de mon ressort...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


Nombre de messages : 4566
Age : 57
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

KGF_dll - nouvelles versions - Page 2 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 2 EmptyLun 25 Oct 2021 - 12:32

Bonjour Klaus !

Ce qui est surprenant dans cette histoire c'est que les anciennes versions de KGF fonctionnent parfaitement chez moi.

Si par exemple je lance GPP2 et la version embarquée tout fonctionne parfaitement.
Si maintenant j'utilise la dernière version il dit qu'il ne la trouve pas !

C'est très étrange non ?! Mad
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


Nombre de messages : 12274
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions - Page 2 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 2 EmptyLun 25 Oct 2021 - 12:42

Oui, incompréhensible en effet. J'ai toujours la même version Delphi, j'ai juste ajouté de nouvelles fonctions. Et d'après la capture de Marc, il trouve bien la DLL mais n'arrive pas à la charger. On voit bien que la ligne 4 avec DLL_ON n'est exécutée que si KGF.dll existe. Il s'agit donc d'un problème lié au contenu de la DLL qui empêche Panoramic de la charger. Et là, je me demande pourquoi ça varie d'une machine à l'autre - je ne vois aucune explicaton pour cela.

Est-ce que Jack en aurait une ?

P.S.
Recharge KGF.dll et exécute le petit code que j'ai posté ci-dessus. Tu verras, ce sera amusant...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


Nombre de messages : 4566
Age : 57
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

KGF_dll - nouvelles versions - Page 2 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 2 EmptyLun 25 Oct 2021 - 12:59

Klaus a écrit:
Recharge KGF.dll et exécute le petit code que j'ai posté ci-dessus. Tu verras, ce sera amusant...

Je voudrai bien.... mais il ne trouve toujours pas le dll... Mad scratch

Il se pourrai peut être que ce soit lié aussi aux dernières maj de Windows en vu du passage à W11 ???!!!! affraid

J'espère que tu trouvera la solution, sinon certains d'entre nous ne pourrons plus utiliser KGF. geek
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Marc

Marc


Nombre de messages : 2380
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

KGF_dll - nouvelles versions - Page 2 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 2 EmptyLun 25 Oct 2021 - 13:10

Klaus a écrit:
- nouvelle fonction WhoLaunchedMe

Résultat :
KGF_dll - nouvelles versions - Page 2 Klaus128
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12274
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions - Page 2 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 2 EmptyLun 25 Oct 2021 - 13:28

Citation :
Il se pourrai peut être que ce soit lié aussi aux dernières maj de Windows en vu du passage à W11 ???!!!!
Ca m'étonnerait. Je suis sous W10 avec toutes les mises à jour appliquées e je n'ai aucun problème.
KGF_dll - nouvelles versions - Page 2 Aa178

@Mark:
Merci pour le test. Si tu génères ce petit programme en EXE puis tu le lances par l'explorateur, tu verras la différence.

Cette fonction retourne le chemin et le nom de l'exécutable qui a lance le programme en cous. Un moyen de savoir si l'on a été lancé par un éditeur ou non (dans ce dernier pas, explorer.exe sera le nom du programme).
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


Nombre de messages : 12274
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions - Page 2 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 2 EmptyLun 25 Oct 2021 - 13:51

@Minibug:
J'ai déposé sur mon site une autre version de KGF.dll. Fonctionnellement identique, elle est beaucoupplus grosse: 6873 ko. J'ai simplement omis la compression de la DLL. Pourrais-tu télécharger cette version et l'essayer stp ?
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Marc

Marc


Nombre de messages : 2380
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

KGF_dll - nouvelles versions - Page 2 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 2 EmptyLun 25 Oct 2021 - 14:17

Klaus a écrit:
Si tu génères ce petit programme en EXE puis tu le lances par l'explorateur, tu verras la différence.

Oui, j’ai déjà fait l’essai. Egalement depuis un disque externe et dans ce cas, je n’ai aucune fenêtre d’information qui apparaît.


Pour le problème de chargement de KGF, j’ai isolé deux ordinateurs sensiblement équivalents avec la même version de Windows 10 .
Sur un disque externe USB, j’ai copié dans la racine, mon exe de test et la DLL KGF.

J’ai donc côte à côte deux ordinateurs :

- Un qui fonctionne bien avec KGF ;
- un qui refuse de charger KGF.

Je ne sais pas trop où chercher pour percer ce mystère.
Je vais commencer par comparer les variables d’environnement…


Je me permets de répondre à la place de Minibug :
Pour ce qui est de la version KGF non compressée (7 037 952 octets), le problème est le même.



Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12274
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions - Page 2 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 2 EmptyLun 25 Oct 2021 - 14:28

Merci, Marc. Tes essais sont précieux.

Comme cela ne dépend visiblement pas de la compression, je vais la remettre, mais avec la version la plus récente du compresseur. On ne sait jamais... Je viens de mettre cette version compressée en ligne.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Marc

Marc


Nombre de messages : 2380
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

KGF_dll - nouvelles versions - Page 2 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 2 EmptyLun 25 Oct 2021 - 15:47

Windows 7 est beaucoup plus bavard que Windows 10 !

Sous Windows 7, lors du chargement de KGF, j’ai deux messages d’erreur successifs. Le deuxième est sans importance, il annonce simplement l’échec du chargement de la DDL. Mais le premier est très parlant :

KGF_dll - nouvelles versions - Page 2 Klaus129

Effectivement, sur les ordinateurs où il n’y a pas de problème, je retrouve plusieurs fois sqlite3.dll dans différentes applications (python, Rad Studio…). Tous les répertoires qui mènent à ces dll sont dans les variables d'environnement système.

Sur les autres ordinateurs sans la présence d'un sqlite3.dll, il y a le message impossible de charger la DLL.
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12274
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions - Page 2 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 2 EmptyLun 25 Oct 2021 - 15:56

Voilà qui est intéressant ! Et ça le fait aussi avec le petit programme de 4 lignes contenant juste ton essai avec DLL_ON tout seul ?
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Marc

Marc


Nombre de messages : 2380
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

KGF_dll - nouvelles versions - Page 2 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 2 EmptyLun 25 Oct 2021 - 16:00

Oui, je n'ai utilisé que celui là.
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12274
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions - Page 2 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 2 EmptyLun 25 Oct 2021 - 16:04

Ok. Merci, Marc. Ca me donne une piste précise à suivre. Je te tiendrai au courant.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Marc

Marc


Nombre de messages : 2380
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

KGF_dll - nouvelles versions - Page 2 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 2 EmptyLun 25 Oct 2021 - 16:05

J'espère ne pas avoir fait fausse route...
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12274
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions - Page 2 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 2 EmptyLun 25 Oct 2021 - 16:58

Non, non - tu as bien vu le problème. J'ai pu l'identifier grâce à tes essais et je suis en train de le corriger.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


Nombre de messages : 4566
Age : 57
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

KGF_dll - nouvelles versions - Page 2 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 2 EmptyLun 25 Oct 2021 - 18:29

Bonsoir à tous les 2. je viens juste de me connecter...

Marc a écrit:
Je me permets de répondre à la place de Minibug :
Pour ce qui est de la version KGF non compressée (7 037 952 octets), le problème est le même.

Tu as bien fais. Je viens de tester et effectivement c'est pareil ! Suspect

J'ai vu que tu avais identifié un partie du problème. J'espère que Klaus va trouver la solution... Wink
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


Nombre de messages : 12274
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions - Page 2 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 2 EmptyMar 26 Oct 2021 - 7:56

KGF.dll V9.58 du 26/10/2021

Nouveautés:
- SQLite3: correction du bug en chargement de la DLL

Modules modifiés:
KGF.dll

La doc est inchangée.

Oui, j'ai trouvé et corrigé cette nuit. Tout devrait être opérationnel maintenant.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Marc

Marc


Nombre de messages : 2380
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

KGF_dll - nouvelles versions - Page 2 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 2 EmptyMar 26 Oct 2021 - 10:58

Bonjour Klaus,

C’est bon ! cheers
Je ne sais pas où tu as caché la SQLite v3.6.7 !

J’ai juste un problème sur un seul ordinateur, la base de donnée est bien remplie mais le grid ne veut pas se remplir.
Sur les autres ordinateurs c’est correct.


Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12274
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions - Page 2 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 2 EmptyMar 26 Oct 2021 - 11:17

La base de données s'installe automatiquement dans C:\SQLite367\SQLite367.dll. Comme ça, il n'y a as de conflit avec d'autres versions éventuelles de SQLite.

Le remplissage de la grille dépend de 2 points:
- le remplissage qui est fait par des données aleatoires, donc forcément différentes sur chaque machine
- des critères de sélection et de tri qui sont placés juste au-dessus de la grille.

Par défaut, le critère de sélection est "A%". On n'a donc que les enregistrements dont la clé commence par A. Enlève le "A" et laisse juste le "%" (sans les guillemets) et refais le remplissage. Tu verras la grille se remplir.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Marc

Marc


Nombre de messages : 2380
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

KGF_dll - nouvelles versions - Page 2 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 2 EmptyMar 26 Oct 2021 - 11:25

Mince ! J’ai oublié d’enlever le "A" !
Donc tout va bien !

Merci Klaus !
Revenir en haut Aller en bas
Minibug

Minibug


Nombre de messages : 4566
Age : 57
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

KGF_dll - nouvelles versions - Page 2 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 2 EmptyMar 26 Oct 2021 - 12:34

Je confirme aussi Klaus, ça fonctionne sans bug !!! sunny

Bon je n'ai pas le temps d'aller plus loin ce midi mais je regarderai dès que possible ta demo...
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


Nombre de messages : 12274
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions - Page 2 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 2 EmptyMar 26 Oct 2021 - 15:07

Voici une nouvelle version du programme de démo (KGF.dll est inchangée): MODIFICATION DE DONNEES.

Après remplissage du GRID à partir de la base, on peut maintenant cliquer sur une cellule quelconque sauf première colonne). Le contenu s'affiche alors dans un champ "Valeur:" sous la grille. On peut y modifier la valeur pis cliquer sur le bouton "Mise à jour" et le champ sera mis à jour dans la base de données. Même si l'on sort du programme par la croix rouge, on relance le programme ensuite et onréaffiche le GRID, la modification est bien prise en compte. On peut utiliser le champ "Critère" en haut pour restraindre le nombre d'enregistrements affichés, faire une modif dans un des enrgistrements affichés, puis réafficher le GRID dans la totalité, la modification sera bien présente sur le bon enregistrement, mais qui ne sera évidemment pas affiché dans la même ligne.

Voici le code:
Code:
' test_SQLite3.bas

label init, open, close, reset, exit
label sample1
label start, exec, commit, rollback, fill, fillgrid, tables, columns
label clickgrid, maj

dim res%, base$, SQL%, xNbrRecords%, x%, sOtherID$, sName$, sNumber$
dim p%, sNotes$, sSQL$, RowCount%, TestTable$, i%, j%, s$, y%, id$, champ$
  TestTable$ = "TestTable"

full_space 0 : on_close 0,exit

main_menu 1
  sub_menu 11 : parent 11,1 : caption 11,"File"
    sub_menu 111 : parent 111,11 : caption 111,"Initialize SQLite3" : on_click 111,init
    sub_menu 112 : parent 112,11 : caption 112,"Open SQLite3" : on_click 112,open
    sub_menu 113 : parent 113,11 : caption 113,"Close SQLite3" : on_click 113,close
    sub_menu 114 : parent 114,11 : caption 114,"Reset SQLite3" : on_click 114,reset
    sub_menu 115 : parent 115,11 : caption 115,"-"
    sub_menu 116 : parent 116,11 : caption 116,"Exit" : on_click 116,exit
  sub_menu 12 : parent 12,1 : caption 12,"Sample scripts SQL"
    sub_menu 121 : parent 121,12 : caption 121,"Create sample table" : on_click 121,sample1
  sub_menu 13 : parent 13,1 : caption 13,"Execute scripts SQL"
    sub_menu 131 : parent 131,13 : caption 131,"Start transaction" : on_click 131,start
    sub_menu 132 : parent 132,13 : caption 132,"Execute script from memo" : on_click 132,exec
    sub_menu 133 : parent 133,13 : caption 133,"Commit transaction" : on_click 133,commit
    sub_menu 134 : parent 134,13 : caption 134,"Rollback transaction" : on_click 134,rollback
    sub_menu 135 : parent 135,13 : caption 135,"-"
    sub_menu 136 : parent 136,13 : caption 136,"Fill data base" : on_click 136,fill
    sub_menu 137 : parent 137,13 : caption 137,"Fill grid from data base" : on_click 137,fillgrid
    sub_menu 138 : parent 138,13 : caption 138,"Get table names in data base" : on_click 138,tables
    sub_menu 139 : parent 139,13 : caption 139,"Get column names in table 'Critère'" : on_click 139,columns
   

alpha 1000 : top 1000,10 : left 1000,10 : caption 1000,"Réponse de SQLite3:"
memo 1001 : top 1001,30 : left 1001,10 : width 1001,500 : height 1001,300 : bar_both 1001

alpha 1010 : top 1010,350 : left 1010,10 : caption 1010,"Script SQL:"
memo 1011 : top 1011,370 : left 1011,10 : width 1011,500 : height 1011,300 : bar_both 1011

progress_bar 1020 : top 1020,680 : left 1020,10 : width 1020,500

alpha 1030 : top 1030,10 : left 1030,540 : caption 1030,"Critère:"
edit 1031 : top 1031,10 : left 1031,600 : width 1031,300
  text 1031,"A%"
alpha 1032 : top 1032,40 : left 1032,540 : caption 1032,"Paramètre:"
edit 1033 : top 1033,40 : left 1033,600 : width 1033,300
  text 1033,"ORDER BY OtherID ASC"
grid 1034 : top 1034,70 : left 1034,540 : width 1034,500 : height 1034,300
  grid_column 1034,5 : grid_row 1034,500 : grid_column_fixed 1034,0
  grid_one_column_width 1034,1,40
  grid_one_column_width 1034,2,60
  grid_one_column_width 1034,3,80
  grid_one_column_width 1034,4,100
  grid_one_column_width 1034,5,200
  grid_write 1034,1,1,"ID"
  grid_write 1034,1,2,"OtherID"
  grid_write 1034,1,3,"Name"
  grid_write 1034,1,4,"Number"
  grid_write 1034,1,5,"Notes"
  on_click 1034,clickgrid
alpha 1035 : top 1035,390 : left 1035,540 : caption 1035,"Ligne:"
alpha 1036 : top 1036,390 : left 1036,570
alpha 1037 : top 1037,390 : left 1037,600 : caption 1037,"Colonne:"
alpha 1038 : top 1038,390 : left 1038,640
alpha 1039 : top 1039,390 : left 1039,680 : caption 1039,"Valeur:"
edit 1040 : top 1040,390 : left 1040,720 : width 1040,200
button 1041 : top 1041,390 : left 1041,950 : caption 1041,"Mise à jour" : on_click 1041,maj

dll_on "KGF.dll"

end

init:
  res% = dll_call0("InitializeSQLite3")
  item_add 1001,"init "+str$(res%)
  res% = dll_call1("GetSQLite3Version",handle(1011))
  item_add 1001,"  version "+str$(res%)
  return

open:
  base$ = "MonTestSQLite2.db"
  SQL% = dll_call2("OpenSQLite3",adr(base$),handle(1001))
  item_add 1001,"open "+str$(SQL%)
 
  ' récupérer le nombre de lignes de la réponse
  RowCount% = dll_call2("GetSQLite3RowCount",SQL%,adr(TestTable$))
  item_add 1001,"  "+str$(rowcount%)+" Lignes dans table "+TestTable$
  return

close:
  SQL% = dll_call1("CloseSQLite3",SQL%)
  item_add 1001,"close "+str$(SQL%)
  return
 
reset:
  res% = dll_call0("ResetSQLite3")
  clear 1001
  item_add 1001,"reset "+str$(res%)
  return
 
exit:
  SQL% = dll_call1("CloseSQLite3",SQL%)
  res% = dll_call0("ResetSQLite3")
  terminate
 
 
 
sample1:          : ' création d'une table de démo
  clear 1011
  item_add 1011,"CREATE TABLE "+TestTable$+" ([ID] INTEGER PRIMARY KEY,[OtherID] INTEGER NULL,"
  item_add 1011,"[Name] VARCHAR (255),[Number] FLOAT, [notes] BLOB);" 
  return 
 
 
 
start:
  res% = dll_call1("StartSQLite3Transaction",SQL%)
  item_add 1001,"start transaction "+str$(res%)
  return
 
exec:
  res% = dll_call2("ExecuteSQLite3Script",SQL%,handle(1011))
  item_add 1001,"Script execution "+str$(res%)
  return
 
commit:
  res% = dll_call1("CommitSQLite3Transaction",SQL%)
  item_add 1001,"commit transaction "+str$(res%)
  return
 
rollback:
  res% = dll_call1("RollbackSQLite3Transaction",SQL%)
  item_add 1001,"irollbacknvalidate transaction "+str$(res%)
  return
 
fill:
  if SQL%=0
    message "No database open"
    return
  end_if
  xNbrRecords% = 10 : ' 500
  min 1020,0 : max 1020,xNbrRecords%
  clear 1011
  for x%=1 to xNbrRecords%
    Position 1020,x% 
    ' construire la requête SQL
    sOtherID$ = str$(int(1 + Rnd(9)))
    sName$ = chr$(int(65+rnd(26)))+str$(x%)
    sNumber$ = rnd(1)
    p% = instr(sNumber$,",")
    if p%>0 then sNumber$ = left$(sNumber$,p%-1)+"."+mid$(sNumber$,p%+1,len(sNumber$))
    sNotes$ = "Possibilité de stocker des données BLOB"
    sSQL$ = "INSERT INTO "+TestTable$+"(Name,OtherID,Number,Notes) VALUES (²"+sName$+"²,"+sOtherID$+","+sNumber$+",²"+sNotes$+"²);"
    item_add 1011,sSQL$
    ' exécuter la requête SQL
    res% = dll_call2("ExecuteSQLite3Script",SQL%,adr(sSQL$))
    if res%<0
      item_add 1011,"Erreur dans requête SQL"
      return
    end_if     
  next x%
  item_add 1011,"Database filled with "+str$(xNbrRecords%)+" records"
  Position 1020,0
  return

fillgrid:
  if SQL%=0
    message "No database open"
    return
  end_if
  ' récupérer le nombre de lignes de la réponse
  RowCount% = dll_call2("GetSQLite3RowCount",SQL%,adr(TestTable$))
  if RowCount%<1
    item_add 1011,"Table "+TestTable$+"manquante ou vide"
    return
  end_if
  grid_row 1034,RowCount%+1
 
  ' charger la table dans le gridRequête SQL
  sSQL$ =        "SELECT * "
  sSQL$ = sSQL$ + "FROM "+testTable$
  sSQL$ = sSQL$ + " WHERE (("+testTable$+".Name)"
  sSQL$ = sSQL$ + " Like ²"+text$(1031)+"²)"
  if text$(1033)<>""
    sSQL$ = sSQL$ + " "+text$(1033)+";"
  else
    sSQL$ = sSQL$ + ";"
  end_if

  ' préparation de la requête: sélection des enregistrements de la table selon les critères
  res% = dll_call2("CompileSQLite3Script",SQL%,adr(sSQL$))

  ' Vider grid
  for i%=2 to RowCount%+1
    for j%=1 to grid_column(1034)
      grid_write 1034,i%,j%,""
    next j%
  next i%
 
  ' boucle d'affichage du résultat
  min 1020,0 : max 1020,5 : position 1020,0
  for i%=1 to RowCount%
    position 1020,i%
    ' Remplissage grid par lecture de chacun des colonnes de chacun des enregistrements
    res% = dll_call1("GetSQLite3NextRow",SQL%)
    if res%<0 then exit_for
    for j%=1 to 5                                     
      res% = dll_call2("GetSQLite3CellText",SQL%,j%)
      grid_write 1034,i%+1,j%,text$(1001)    : ' Ecriture dans la cellule correspondante   
    next j%
  next i%
  res% = dll_call1("FinalizeSQLite3Request",SQL%)   
  return

tables:
  if SQL%=0
    message "No database open"
    return
  end_if
  res% = dll_call1("GetSQLite3TableNames",SQL%)
  item_add 1001,str$(res%)+" tables"
  return
 
columns:
  if SQL%=0
    message "No database open"
    return
  end_if
  s$ = trim$(text$(1031))
  if s$="" then s$ = TestTable$
  res% = dll_call2("GetSQLite3ColumnNames",SQL%,adr(s$))
  item_add 1001,str$(res%)+" colonnes dans table "+s$
  return

clickgrid:
  x% = mouse_x_left_down(1034)
  y% = mouse_y_left_down(1034)
  x% = grid_x_to_column(1034,x%)
  y% = grid_y_to_row(1034,y%) - 1
  s$ = grid_read$(1034,y%+1,x%)
  caption 1036,str$(y%)
  caption 1038,str$(x%)
  text 1040,s$
  id$ = grid_read$(1034,y%+1,1)
  champ$ = grid_read$(1034,1,x%)
  return

maj:
  if x%<2
    message "colonne interdite"
    return
  end_if
  s$ = trim$(text$(1040))
  sSQL$ = "UPDATE TestTable SET "+champ$+" = ²"+s$+"² WHERE ID= ²"+id$+"² ;"
  clear 1011
  item_add 1011,sSQL$
  res% = dll_call2("ExecuteSQLite3Script",SQL%,handle(1011))
  item_add 1001,"UPDATE execution "+str$(res%)
  gosub fillgrid
  item_add 1001,"FILLGRID execution "+str$(res%)
  return
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


Nombre de messages : 4566
Age : 57
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

KGF_dll - nouvelles versions - Page 2 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 2 EmptyMar 26 Oct 2021 - 17:36

Je viens de télécharger le dernier code et remettre à jour la dll, mais....

heuuu Klaus c'est normal que le GRID reste désespérément vide ??!!! Crying or Very sad

Edit :
J'ai trouvé ! cheers
Je n'ai pas encore tout compris mais ça fonctionne. Wink
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


Nombre de messages : 12274
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions - Page 2 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 2 EmptyMer 27 Oct 2021 - 1:43

Voici une nouvelle version du programme de démo. Déjà auparavant, le programme de démo contenait une ligne du menu "Execute scripts SQL" qui permet d'exécuter une requête SQL (multi-ligne) placée dans le mémo en bas à gauche. J'ai ajouté 3 lignes au menu "Sample scripts SQL" pour montrer un peu la puissance de ce dispositif:

"Delete sample table"
Ce script supprime purement et simplement la table TestTable. Cliquez sur cette ligne, puis sur "Execute script from memo" dans me menu "Execute scripts SQL". Un clic sur "Fill grid from data base" montrera alors par un message d'erreur que la table est absente, ainsi qu'un clic sur "Get table names in data base" (0 tables trouvées).

"Delete records with selection"
Ce script supprime tous les enregistrements qui correspondent à un critère. Saisissez "Number <  0.3" dans le champ "Critère" en haut à droite. Cliquez sur cette ligne, puis sur "Execute script from memo" dans me menu "Execute scripts SQL". Mettez "%" dans "Critère" et cliquez sur "Fill grid from data base" pour voir l'effet.

"Empty sample table"
Ce script vide complètement ta table TestTable. Cliquez sur cette ligne, puis sur "Execute script from memo" dans me menu "Execute scripts SQL". Un clic sur "Fill grid from data base" montrera alors par un message d'erreur que la table est vide, ainsi qu'un clic sur "Get table names in data base" (1 tables trouvées).

Il n'y a pas de nouvelle version de KGF.dll. C'est simplement du code Panoramic pour montrer les capacités des requètes SQL. A vous de tester vos propres requêtes en les plaçant dans le mémo en bas à gauche, en mettant le caractère "²" à la place des guillemets. Puis cliquez sur "Execute script from memo" dans me menu "Execute scripts SQL".

Code:
' test_SQLite3.bas

label init, open, close, reset, exit
label sample1, sample2, sample3, sample4
label start, exec, commit, rollback, fill, fillgrid, tables, columns
label clickgrid, maj

dim res%, base$, SQL%, xNbrRecords%, x%, sOtherID$, sName$, sNumber$
dim p%, sNotes$, sSQL$, RowCount%, TestTable$, i%, j%, s$, y%, id$, champ$
  TestTable$ = "TestTable"

full_space 0 : on_close 0,exit

main_menu 1
  sub_menu 11 : parent 11,1 : caption 11,"File"
    sub_menu 111 : parent 111,11 : caption 111,"Initialize SQLite3" : on_click 111,init
    sub_menu 112 : parent 112,11 : caption 112,"Open SQLite3" : on_click 112,open
    sub_menu 113 : parent 113,11 : caption 113,"Close SQLite3" : on_click 113,close
    sub_menu 114 : parent 114,11 : caption 114,"Reset SQLite3" : on_click 114,reset
    sub_menu 115 : parent 115,11 : caption 115,"-"
    sub_menu 116 : parent 116,11 : caption 116,"Exit" : on_click 116,exit
  sub_menu 12 : parent 12,1 : caption 12,"Sample scripts SQL"
    sub_menu 121 : parent 121,12 : caption 121,"Create sample table" : on_click 121,sample1
    sub_menu 122 : parent 122,12 : caption 122,"Delete sample table" : on_click 122,sample2
    sub_menu 123 : parent 123,12 : caption 123,"Delete records with selection" : on_click 123,sample3
    sub_menu 124 : parent 124,12 : caption 124,"Empty sample table" : on_click 124,sample4
  sub_menu 13 : parent 13,1 : caption 13,"Execute scripts SQL"
    sub_menu 131 : parent 131,13 : caption 131,"Start transaction" : on_click 131,start
    sub_menu 132 : parent 132,13 : caption 132,"Execute script from memo" : on_click 132,exec
    sub_menu 133 : parent 133,13 : caption 133,"Commit transaction" : on_click 133,commit
    sub_menu 134 : parent 134,13 : caption 134,"Rollback transaction" : on_click 134,rollback
    sub_menu 135 : parent 135,13 : caption 135,"-"
    sub_menu 136 : parent 136,13 : caption 136,"Fill data base" : on_click 136,fill
    sub_menu 137 : parent 137,13 : caption 137,"Fill grid from data base" : on_click 137,fillgrid
    sub_menu 138 : parent 138,13 : caption 138,"Get table names in data base" : on_click 138,tables
    sub_menu 139 : parent 139,13 : caption 139,"Get column names in table 'Critère'" : on_click 139,columns
   

alpha 1000 : top 1000,10 : left 1000,10 : caption 1000,"Réponse de SQLite3:"
memo 1001 : top 1001,30 : left 1001,10 : width 1001,500 : height 1001,300 : bar_both 1001

alpha 1010 : top 1010,350 : left 1010,10 : caption 1010,"Script SQL:"
memo 1011 : top 1011,370 : left 1011,10 : width 1011,500 : height 1011,300 : bar_both 1011

progress_bar 1020 : top 1020,680 : left 1020,10 : width 1020,500

alpha 1030 : top 1030,10 : left 1030,540 : caption 1030,"Critère:"
edit 1031 : top 1031,10 : left 1031,600 : width 1031,300
  text 1031,"A%"
alpha 1032 : top 1032,40 : left 1032,540 : caption 1032,"Paramètre:"
edit 1033 : top 1033,40 : left 1033,600 : width 1033,300
  text 1033,"ORDER BY OtherID ASC"
grid 1034 : top 1034,70 : left 1034,540 : width 1034,500 : height 1034,300
  grid_column 1034,5 : grid_row 1034,500 : grid_column_fixed 1034,0
  grid_one_column_width 1034,1,40
  grid_one_column_width 1034,2,60
  grid_one_column_width 1034,3,80
  grid_one_column_width 1034,4,100
  grid_one_column_width 1034,5,200
  grid_write 1034,1,1,"ID"
  grid_write 1034,1,2,"OtherID"
  grid_write 1034,1,3,"Name"
  grid_write 1034,1,4,"Number"
  grid_write 1034,1,5,"Notes"
  on_click 1034,clickgrid
alpha 1035 : top 1035,390 : left 1035,540 : caption 1035,"Ligne:"
alpha 1036 : top 1036,390 : left 1036,570
alpha 1037 : top 1037,390 : left 1037,600 : caption 1037,"Colonne:"
alpha 1038 : top 1038,390 : left 1038,640
alpha 1039 : top 1039,390 : left 1039,680 : caption 1039,"Valeur:"
edit 1040 : top 1040,390 : left 1040,720 : width 1040,200
button 1041 : top 1041,390 : left 1041,950 : caption 1041,"Mise à jour" : on_click 1041,maj

dll_on "KGF.dll"

end

sub ClearGrid()
dim_local r11%,c1%
  grid_row 1034,1
end_sub

init:
  res% = dll_call0("InitializeSQLite3")
  item_add 1001,"init "+str$(res%)
  res% = dll_call1("GetSQLite3Version",handle(1011))
  item_add 1001,"  version "+str$(res%)
  return

open:
  base$ = "MonTestSQLite2.db"
  SQL% = dll_call2("OpenSQLite3",adr(base$),handle(1001))
  item_add 1001,"open "+str$(SQL%)
 
  ' récupérer le nombre de lignes de la réponse
  RowCount% = dll_call2("GetSQLite3RowCount",SQL%,adr(TestTable$))
  item_add 1001,"  "+str$(rowcount%)+" Lignes dans table "+TestTable$
  return

close:
  SQL% = dll_call1("CloseSQLite3",SQL%)
  item_add 1001,"close "+str$(SQL%)
  return
 
reset:
  res% = dll_call0("ResetSQLite3")
  clear 1001
  item_add 1001,"reset "+str$(res%)
  return
 
exit:
  SQL% = dll_call1("CloseSQLite3",SQL%)
  res% = dll_call0("ResetSQLite3")
  terminate
 
 
 
sample1:          : ' création d'une table de démo
  clear 1011
  item_add 1011,"CREATE TABLE "+TestTable$+" ([ID] INTEGER PRIMARY KEY,[OtherID] INTEGER NULL,"
  item_add 1011,"[Name] VARCHAR (255),[Number] FLOAT, [notes] BLOB);" 
  return 
 
sample2:          : ' supprimer une table de démo
  clear 1011
  item_add 1011,"DROP TABLE ²"+TestTable$+"²"
  return 
 
sample3:          : ' supprimer des enregistrements avec sélection
  clear 1011
  item_add 1011,"DELETE FROM ²"+TestTable$+"² WHERE "+text$(1031)
  return 
 
sample4:          : ' vider une table de démo
  clear 1011
  item_add 1011,"DELETE FROM ²"+TestTable$+"²"
  return 
 
 
 
start:
  res% = dll_call1("StartSQLite3Transaction",SQL%)
  item_add 1001,"start transaction "+str$(res%)
  return
 
exec:
  res% = dll_call2("ExecuteSQLite3Script",SQL%,handle(1011))
  item_add 1001,"Script execution "+str$(res%)
  clearGrid()
  return
 
commit:
  res% = dll_call1("CommitSQLite3Transaction",SQL%)
  item_add 1001,"commit transaction "+str$(res%)
  return
 
rollback:
  res% = dll_call1("RollbackSQLite3Transaction",SQL%)
  item_add 1001,"irollbacknvalidate transaction "+str$(res%)
  return
 
fill:
  if SQL%=0
    message "No database open"
    return
  end_if
  xNbrRecords% = 10 : ' 500
  min 1020,0 : max 1020,xNbrRecords%
  clear 1011
  for x%=1 to xNbrRecords%
    Position 1020,x% 
    ' construire la requête SQL
    sOtherID$ = str$(int(1 + Rnd(9)))
    sName$ = chr$(int(65+rnd(26)))+str$(x%)
    sNumber$ = rnd(1)
    p% = instr(sNumber$,",")
    if p%>0 then sNumber$ = left$(sNumber$,p%-1)+"."+mid$(sNumber$,p%+1,len(sNumber$))
    sNotes$ = "Possibilité de stocker des données BLOB"
    sSQL$ = "INSERT INTO "+TestTable$+"(Name,OtherID,Number,Notes) VALUES (²"+sName$+"²,"+sOtherID$+","+sNumber$+",²"+sNotes$+"²);"
    item_add 1011,sSQL$
    ' exécuter la requête SQL
    res% = dll_call2("ExecuteSQLite3Script",SQL%,adr(sSQL$))
    if res%<0
      item_add 1011,"Erreur dans requête SQL"
      return
    end_if     
  next x%
  item_add 1011,"Database filled with "+str$(xNbrRecords%)+" records"
  Position 1020,0
  return

fillgrid:
  if SQL%=0
    message "No database open"
    return
  end_if
  ' récupérer le nombre de lignes de la réponse
  RowCount% = dll_call2("GetSQLite3RowCount",SQL%,adr(TestTable$))
  if RowCount%<1
    item_add 1011,"Table "+TestTable$+"manquante ou vide"
    return
  end_if
  grid_row 1034,RowCount%+1
 
  ' charger la table dans le gridRequête SQL
  sSQL$ =        "SELECT * "
  sSQL$ = sSQL$ + "FROM "+testTable$
  sSQL$ = sSQL$ + " WHERE (("+testTable$+".Name)"
  sSQL$ = sSQL$ + " Like ²"+text$(1031)+"²)"
  if text$(1033)<>""
    sSQL$ = sSQL$ + " "+text$(1033)+";"
  else
    sSQL$ = sSQL$ + ";"
  end_if

  ' préparation de la requête: sélection des enregistrements de la table selon les critères
  res% = dll_call2("CompileSQLite3Script",SQL%,adr(sSQL$))

  ' Vider grid
  for i%=2 to RowCount%+1
    for j%=1 to grid_column(1034)
      grid_write 1034,i%,j%,""
    next j%
  next i%
 
  ' boucle d'affichage du résultat
  min 1020,0 : max 1020,5 : position 1020,0
  for i%=1 to RowCount%
    position 1020,i%
    ' Remplissage grid par lecture de chacun des colonnes de chacun des enregistrements
    res% = dll_call1("GetSQLite3NextRow",SQL%)
    if res%<0 then exit_for
    for j%=1 to 5                                     
      res% = dll_call2("GetSQLite3CellText",SQL%,j%)
      grid_write 1034,i%+1,j%,text$(1001)    : ' Ecriture dans la cellule correspondante   
    next j%
  next i%
  res% = dll_call1("FinalizeSQLite3Request",SQL%)   
  return

tables:
  if SQL%=0
    message "No database open"
    return
  end_if
  res% = dll_call1("GetSQLite3TableNames",SQL%)
  item_add 1001,str$(res%)+" tables"
  return
 
columns:
  if SQL%=0
    message "No database open"
    return
  end_if
  s$ = trim$(text$(1031))
  if s$="" then s$ = TestTable$
  res% = dll_call2("GetSQLite3ColumnNames",SQL%,adr(s$))
  item_add 1001,str$(res%)+" colonnes dans table "+s$
  return

clickgrid:
  x% = mouse_x_left_down(1034)
  y% = mouse_y_left_down(1034)
  x% = grid_x_to_column(1034,x%)
  y% = grid_y_to_row(1034,y%) - 1
  s$ = grid_read$(1034,y%+1,x%)
  caption 1036,str$(y%)
  caption 1038,str$(x%)
  text 1040,s$
  id$ = grid_read$(1034,y%+1,1)
  champ$ = grid_read$(1034,1,x%)
  return

maj:
  if x%<2
    message "colonne interdite"
    return
  end_if
  s$ = trim$(text$(1040))
  sSQL$ = "UPDATE TestTable SET "+champ$+" = ²"+s$+"² WHERE ID= ²"+id$+"² ;"
  clear 1011
  item_add 1011,sSQL$
  res% = dll_call2("ExecuteSQLite3Script",SQL%,handle(1011))
  item_add 1001,"UPDATE execution "+str$(res%)
  gosub fillgrid
  item_add 1001,"FILLGRID execution "+str$(res%)
  return

Les 3 scripts ajoutés ont été écrits selon les informations del'excellent site de cours SQL: https://sql.sh/cours/.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé





KGF_dll - nouvelles versions - Page 2 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 2 Empty

Revenir en haut Aller en bas
 
KGF_dll - nouvelles versions
Revenir en haut 
Page 2 sur 14Aller à la page : Précédent  1, 2, 3 ... 8 ... 14  Suivant
 Sujets similaires
-
» KGF_dll - nouvelles versions
» KGF_dll - nouvelles versions
» KGF_dll - nouvelles versions
» Synedit_Editor - nouvelles versions
» Nouvelles DLL bonus

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: Activité des sites créés par les Panoramiciens. :: Le site de Klaus-
Sauter vers: