[ANN]: New Version QS_TOOLBOX

Hello,

we are pleased to delivered a new version (1.70) of our component.
Some correction (translation, minor bugs, improvement) and 3 new functions:

  • Export of pictures library.
  • Import of pictures into pictures library (replace existing pictures based on the name)
  • list of all objects using a picture coming from the pictures library.

This version is available from our website : http://association-qualisoft.eu/

If you find bugs, have suggestions, or want to send back enhancements, please email us at: info at association-qualisoft.eu.

Patrick

Hello,

we are pleased to delivered a new version (1.70.5) of our component.

  • Some bugs correction on Form Explorer and JSON view/export.
  • use, on V16, WORKERS (call, kill) and FORM CALL which are really great commands.

Thanks to C.Pisterman for reporting bugs. He wins a full licence for his help.

This new version is available from our website : http://association-qualisoft.eu/

If you find bugs, have suggestions, or want to send back any enhancements, please email us at: info at association-qualisoft.eu.

Patrick

Que signifie :
trouvé 155 index définis et non utilisés ?
trouvé 82 champs sans index ?

Pour faire simple, voici un bout de code ajoute dans un tableau les commandes qui utilisent les index.

<code 4D>
// – Liste des commandes faisant appels aux index
Case of
: ($TbTemp{$b}=(Command name(277)+"@")) // CHERCHER
APPEND TO ARRAY($Tb_Commands;$TbTemp{$b})

		: ($TbTemp{$b}=(Command name(339)+"@"))  // VALEURS DISTINCTES 
			APPEND TO ARRAY($Tb_Commands;$TbTemp{$b})
			
		: ($TbTemp{$b}=(Command name(644)+"@"))  // CHERCHER PAR TABLEAU
			APPEND TO ARRAY($Tb_Commands;$TbTemp{$b})
			
		: ($TbTemp{$b}=(Command name(1050)+"@"))  // CHERCHER PAR TABLEAU DANS SELECTION
			APPEND TO ARRAY($Tb_Commands;$TbTemp{$b})
			
		: ($TbTemp{$b}=(Command name(300)+"@"))  // CHERCHER PAR FORMULE
			APPEND TO ARRAY($Tb_Commands;$TbTemp{$b})
			
		: ($TbTemp{$b}=(Command name(207)+"@"))  // CHERCHER PAR FORMULE DANS SELECTION
			APPEND TO ARRAY($Tb_Commands;$TbTemp{$b})
			
		: ($TbTemp{$b}=(Command name(341)+"@"))  // CHERCHER DANS SELECTION
			APPEND TO ARRAY($Tb_Commands;$TbTemp{$b})
			
		: ($TbTemp{$b}=(Command name(1331)+"@"))  // CHERCHER PAR ATTRIBUT
			APPEND TO ARRAY($Tb_Commands;$TbTemp{$b})
			
		: ($TbTemp{$b}=("@:="+Command name(653)+"@"))  // Trouver dans champ
			APPEND TO ARRAY($Tb_Commands;$TbTemp{$b})
			
		: ($TbTemp{$b}=("@:="+Command name(1)+"@"))  // Somme
			APPEND TO ARRAY($Tb_Commands;$TbTemp{$b})
			
		: ($TbTemp{$b}=("@:="+Command name(3)+"@"))  // Max
			APPEND TO ARRAY($Tb_Commands;$TbTemp{$b})
			
		: ($TbTemp{$b}=("@:="+Command name(4)+"@"))  // Min
			APPEND TO ARRAY($Tb_Commands;$TbTemp{$b})
			
	End case 

</code 4D>

Je cherche ensuite, dans la structure, les champs qui sont indexés.

Puis, je passe au travers de toutes les méthodes et je construit un tableau qui contient toutes les lignes de code utilisant ces commandes.
Ensuite, je commence un travail de comptage :

  • si il reste des champs indexés qui ne sont pas appelés, alors ils se retrouvent dans la ligne ‘trouvé 155 index définis et non utilisés’
  • si il reste des index alors que ces champs n’ont pas été appelés, alors ils se retrouvent dans la ligne " index defined and unused !"
  • si des champs sont utilisés par ces commandes sans être indexés, alors ils se retrouvent dans la ligne ‘trouvé 82 champs sans index’

Maintenant, si le texte que tu as es en français, je ne peux que te conseiller de charger la dernière version qui corrige pas mal de bugs, notamment au niveau des formulaires et qui apporte aussi de nouvelles fonctions.

Je suis preneur de toute remarque pour faire évoluer l’outil.

Restant disponible

Patrick

: Patrick EMANUEL

je ne peux que te conseiller de charger la dernière version qui
corrige pas mal de bugs,

1.70.6

Tu confirmes qu’il y a un composant Mac et un PC ?

Passe-moi un coup de fil demain si tu peux.

: Bertrand SOUBEYRAND
: Patrick EMANUEL
Tu confirmes qu'il y a un composant Mac et un PC ?

Passe-moi un coup de fil demain si tu peux.

Oui, un Mac et un PC.
Pour le PC, l’utilitaire que j’utilise pour créer les rendus graphiques est inclus dans le dossier ressources, car il est scriptable. Pour le mac, la version dépend de la version du système et doit être installé séparément.

Pour le coup de fil, ce sera avec plaisir mais je suis actuellement en déplacement en Italie :-). Je rentre demain
lundi ?

Salut Patrick : dans la liste d’index non utilisés on trouve beaucoup de Primary keys car défini et quasi obligatoire de l’indexer mais pas nécessairement utilisé.
Du coup un nombre important d’index non utilisé mais pas représentatif de la réalité.

Tu en penses quoi ?

Cordialement

Pour moi, une primary key qui n’est pas utilisée me chagrine un peu. En effet, la primary key est là pour identifier rapidement un élément dans la table. Donc, si cela est défini et pas utilisé, c’est que l’élément identifié en tant que primary key est erroné.
Enfin, c’est mon point de vue, je me trompe peut-être.

J’ai ce cas dans pas mal de tables de lien N-N : je leur colle une PK mais c’est rarement ce que je cherche…

Effectivement. Lorsque j’ai répondu, j’ai omis ce type de liens (nécessaires) dans le cadre de liens N-N.

Deux autres aspects qui me semblent difficiles à traiter, la cohérence en fonction de la taille des données (valeurs distinctes selon que la table fait quelque milliers ou quelques centaines de milliers) et les appels “masqués” (pointeurs).

Oui. C’est aussi pour cela qu’il y a un essai d’analyse de la volumétrie par table dont le code est inspiré de l’un des code que tu as partagé (http://forums.4d.fr/Post/FR/12071274/1/12206404#12206404>les gros champs)

Ha, les gros champs… Code né de ma stupéfaction face à la taille du data d’un client :lol:

Sur ce sujet, il y a un code quelque part sur 4dbb (de Philippe Voisin, si j’ai bonne mémoire) qui vérifie l’adéquation du type d’index. Genre : peu de valeurs distinctes => cluster, beaucoup => btree.

Effectivement, cela peut être intéressant d’ajouter ce type de point dans le composant.
Je vais y réfléchir :wink: