Téléchargement

Cher visiteur, vous être sur le point de télécharger Betula. Ce sont près de 47.000 lignes de code à votre disposition gratuitement, ce n’est pas rien.  Pour rappel, ce projet est open-source. N’hésitez donc pas à participer activement à ce merveilleux couteau suisse : envoyez vos idées, corrections, modifications et améliorations dans le forum ou sur admin@wlplus.org ou tout simplement en participant aux tests ou à la documentation (nous écrire sur admin@wlplus.org dans ce cas).
Malgré son intégration dans une poignée de projets, gardez à l’esprit que Betula reste en cours de développement, de test et d’optimisation. Revenez donc régulièrement sur cette page pour voir son évolution.

Téléchargements : Composant 0.42 – Source 0.42 – Exemple 0.40 (n’a pas nécessairement la même version de le framework si les dernières évolutions/corrections ne l’impacte pas)

Pour utiliser Betula, télécharger le composant ci-dessus et ajoutez le à votre projet.

Pour personnaliser Betula
Aucun problème, c’est même conseillé ! Décompressez les sources, par exemple, dans C:\Mes projets\Betula et ouvrez le projet Betula. Faites ensuite des héritages des classes à modifier (ex : cApplication_Perso qui hérite de cApplication). Ainsi, à la prochaine mise à jour de Betula, vous n’écrasez pas vos modifications !

Cas particulier des classes cUtilisateur, cAppParamètres, cLog et cTrace : elles sont utilisées par la classe principale cApplication. Pour utiliser vos propres classe héritées, passez la classe dans les paramètres prévus à cet effet de cApplication ! Ceci est possible depuis la version 0.18.

Historique des versions

VersionDate de sortieRemarque / Log de modification
0.4215 avril 2024
Ajouts
– cAPIWeatherMap : accès aux données météo (une clé API est nécessaire)
– cApplication : m_sWindowsVersion
– COL_Conversion : FrançaisEnNumérique : traduit une chaine de texte en entier
– COL_Conversion : NumériqueEnFrancais : nouveaux de multiplicateurs
– COL_Conversion : DateVersTrimestre et TrimestreVersDate
– COL_GUI : InterrupteurColonne : gère l’interrupteur à 3 états en haut d’une colonne interrupteur
– COL_GUI : TrimestreEnCours
– COL_Réseau : URLEncodeUnicode (URLEncode mais compatible Unicode)
– COL_Vérification : EstPremier (vérifie qu’un nombre est premier)
– COL_Win : MiseEnVeille, ExécuteCommandeDos, ExécuteCommandePoweShell, ExécuteBatch
– COL_WMI : WMI_Win32_LogicalDiskToPartition, WMI_Win32_PhysicalMemory et WMIVersTableau (donne le résultat sous forme d’un tableau associatif)
– quelques appel de traces
Modifications
– cHTTPAPI.m_stRequête changée en cHTTPAPI.m_stRequêteHTTPAPI pour éviter toute confusion dans le nom des variables
– COL_Conversion : valeurs pour l’énumération EUnitéTempérature
– COL_GUI.ColonneOptimiseLargeur : prise en compte des totaux/somme/moyenne en bas de la table
– EstAdministrateur déplacé dans COL_Win
– COL_WMI.RequêteWMI : compatibilité avec 64 bits
Corrections
– gestion des mémos et du statut dans cEnregistrement
– cTable : Récupération d’un index primaire quand il n’y a pas de clé unique
– COL_Conversion : UnitéVersNom, UnitéVersSymbole, MultiplicateurVersSymbole et adaptation du format de sortie en chaine pour Unités, Dizaines, …
Suppressions
– cCommandeDos : a été mise sous forme de procédure (voir ci-dessus)
0.4116 févr. 2024
Ajouts
– COL_Conversion : GrayVersBinaire, BinaireVersGray, NumériqueEnEspagnol et AdjectifOrdinal
– COL_GUI : EstVoletStatique
– 6 tests supplémentaires
Modifications
– cEnregistrement.Ajoute, Modifie, MémoTélécharge et MémoTéléverse : optimisation de la gestion des mémos
– COL_PCS.NumériqueEnFrançais et NumériqueEnArabe sont maintenant dans COL_Conversion (ainsi que les énumérations reliées)
– JSONDécode : prise en charge des caractères Unicode
– COL_GUI.ChampNomComplet et ChampPosition : amélioration du résultat pour les mises en page complexe
Corrections
– cBaseDeDonnéesHyperFile.SQLRetourIDAuto et SQLBinaireLit32 : prise en charge des mémos
– Changement de nom de fonctions de la version précédente
– JSONEncode : prise en charge jusqu’au caractère Ascii 128
– GoogleMapsAffiche : problème d’ouverture du site
– VariantVersJSON : encodage JSON des chaines
Suppressions
– Trace intempestives
0.4021 janv. 2024Cette version est un bond en avant par rapport à la version 0.35 : elle intègre les 14 classes "compatibles", est nettoyée des éléments obsolètes, possède maintenant quelques tests automatiques et a été complètement documentée avec l'aide de ChatGPT. De plus, Betula contient maintenant les éléments liés à sa licence LGPL.
Ajouts
– Les classes APILayer et géographiques (pays, continents, régions, devises, langues et dialectes avec jauge de chargement) en faisant une meilleure intégration avec Betula
– COL_GPU : Collection comprenant une 10aines de fonctions pour interroger le groupware sans avoir besoin du composant interne
– cFichierTexteEnBoucle : le code servant à limiter le nombre de fichiers Trace et Log est maintenant à disposition de tous (et ces deux classes retravaillées en conséquence)
– La trace avait été oubliée dans certaines méthodes et ces appels vérifient l’existence de l’instance de cTrace (qui se ferme au moment de la fermeture de l’application)
– Ajout de méthodes dans cBaseDeDonnées et dans les autres classes de BD pour que toutes ces classes soient cohérentes
– cHTTP : HTTPMéthodeVersEntier
– COL_Win.TexteVersReg : pour traiter un chemin de fichier/répertoire à écrire dans la base de registre
– COL_Win.FinSessionExécute : permet d’exécuter une procédure (ex : une fermeture) passée en paramètre au moment de la fin d’une session Windows.
Modifications
– cLog.LogInitCourriel a une inversion de paramètre, c’est maintenant le serveur:port qui est en première position
– cAPI a été renommée cHTTPAPI (puisqu’il existe aussi des API dans Windows, ceci afin de ne pas les confondre)
– cApplication.p_eExtensionINI devient p_sSuffixeIni (car l’extension du fichier INI est toujours INI !) et cApplication.p_sAdresseIP devient p_sAdresseIPLocal (pour ne pas la confondre avec celle publique sur Inernet)
– cFichierMP3 : p_nDélaiPlaylist devient p_nDélaiListeLecture, p_sOrdre devient p_sOrdreListeLecture, p_sISRC devient p_sTSRC
– cHTTP : CodeHTTPVersDescription (venant de cHTTPServer) et ExtensionFichierVersTypeMime (était dans COL_Conversion)
– cLog et cTrace : p_sDernierFichier devient p_sFichierEnCours
– cMedia : VideMémoire et AdresseProcédure sont déplacées dans COL_Win et changent de nom pour, respectivement, ZoneMémoireZéro (remplit une zone mémoire de zéro) et DLLAdresseProcédure
– cSourceDeDonnées : LitSupprimé devient LitDansPoubelle
– cBaseDeDonnées : RelitTout devient ListeRafraîchi (les 2 méthodes d’objectif identique existaient parfois dans certaines classes)
– BinaireVersEntier, NumériqueVersBinaire, DateHeureVersEntier, EntierVersDateHeure : passage aux entiers 8 octets
– DatePHPVersWD devient DatUnixVersWD et donc DateWDVersPHP devient DateWDVersUnix
– L’énumération de statut d’enregistrement n’est plus dans cSourceDeDonnées mais dans cEnregistrement
Corrections
– JSONVersVariant : les deux procédures internes sont maintenant des procédures privées (car erreur GPF inexplicable sur l’une d’elles) et test sur une structure complexe de csdPays
– AnsiVersBase64 : certains caractères dans la seconde moitié de la table ANSI étaient mal transformés
– ChiffreArabeVersRomain devient NombreVersRomain et a été corrigé selon l’algorithme proposé par ChatGPT, ChiffreRomainVersArabe devient donc RomainVersNombre et a également été corrigé
– ConvertiInformatique : le multiplicateur n’utilisait pas la bonne valeur
– DateGrégorienneVersDateJulienne et DateJulienneVersDateGrégorienne : La date julienne est celle décrite par jjjAA et non la durée écoulée depuis le 1 janvier -4712 à 12 heures
– CombinaisonStdNbr : le calcul n’était pas exact.
– GLP_ChiffresVersTéléphone et autres DOM-TOM : avait l’indicatif régional qui se répétait
– COL_WMI : correction de RequêteWMI et suppression de ; intempestifs dans les attributs de certaines fonctions WMI
Suppressions
– La méthode _Désérialise de cStructure a été intégrée à cEnregistrement
– Certaines propriétés en lecture/écriture d’un membre ont été supprimées car n’apportaient pas de valeur ajoutée (on utilise alors le membre lui-même). Exemple : cLog.m_pLogActif devient cLog.m_bLogActif.
– UTF16VersANSI : doit être retravaillée
0.3515 déc. 2023
Ajouts
– cAPI : classe qui permet l’appel d’API avec 4 types d’authentifications
– cAPIAWS, cAPIAWS_S3 et cAPIAWS_Textract : classes d’accès aux services S3 et Textract de AWS
– COL_Conversion.DateHeureVersISO8601 et ISO8601VersDateHeure : permet les transformations des format des dateheure au format ISO8601 (aaaammjjThhmmsscccZ)
– COL_Conversion.CANArrondiMonétaireEspèce, COL_Réseau.DateHeureSysUTC et COL_PCS.NumériqueEnArabe
– cHTML : renommage de Traite en LitHTML, ajout des fonctions LitURL, EcritHTML et Occurrence (nbr de balises dans le document HTML)
– COL_Vérification.EstVoyelle et EstLettre (pour balancer avec EstNumérique)
Modifications
– JSONVersVariant : suppression du forçage de la version programmée (vs l’instruction standard)
– Adaptation du code selon les codes erreurs qui apparaissent en WD28
Corrections
– cEnregistrement.Supprime : correction quand suppression en cascade
– COL_Vérification.EstNomFichierValide
0.348 oct. 2023
Ajouts
– ImprimeTable : exemple fourni avec fenêtre de paramétrage. Ajout d’un paramètre « nNbLignesMax », vérification de l’existence de RICHED20.DLL et meilleur prise en charge des colonnes en RTF.
– HTTPServeur : exemple fourni. Ajout d’une structure pour la gestion des procédures. Procédure FonctionAjoute qui accepte une procédure interne et FonctionAjouteTxt accepte une procédure sous forme texte. Vérification des formats de réponse acceptés par le client, gestion d’une procédure par défaut (quand aucun mot clé n’est dans l’URL de l’appel), meilleure gestion d’erreur et de l’UTF8.
– COL_PCS.HASPVersion : numéro de version du pilote de la clé de licence WinDev
– COL_Matériel : nouvelle procédures CarteMère, Bios, Ordinateur, OS et CarteRéseau
Modifications
– FI_Page : gestion des pieds de page gauche, centre et droit
COL_Conversion.StructureVersJSON : suppression d’une accolade intempestive dans la gestion des tableaux
– COL_PCS.RéseauNomDomaine devient RéseauNomDomaineDNS
– COL_DDE.CodeErreurVersChaine devient DDECodeErreurVersChaine
– cHTTP : RequêteBloc devient Requête et HttpRequêteServeur devient RequêteServeurBetula
– cEnregistrement.MemoTélécharge : redimensionnement de l’image mis dans une procédure interne
– LitDernièreErreur et ÉcritDernièreErreur déplacés dans COL_Win
Corrections
– COL_GUI.ChampPosition : meilleur résultat dans le cas d’imbrication particulière d’objets
Supression
– cBaseDeDonnées.AliasSupprime (obsolète)
Divers
– Problème identifié dans AdapteurInfo
0.3319 sept. 2023
Ajouts
– fFichierTemp : ajout de l’extension de fichier
– Procédures Processeur et Mémoire : adaptation au 64 bits
– COL_WIN.CodeMachineExécute : permet d’exécuter du code machine en binaire (en 32 bits pour l’instant)
– COL_WMI.Init permet de mettre en mémoire une fois le nom de l’ordinateur, le nom d’utilisateur et le mot de passe de la machine pour laquelle on veut les infos
Modifications
– Détection plus précise dans du # de cellule disposition dans laquelle se trouve un champ (voir DispCelluleDuChamp)
– Optimisation de ChampPosition
– cHTML : ajout d’un paramètre pour transformer le résultat de la requête depuis ANSI ou UTF8
Corrections
– StructureVersJSON : meilleur prise en charge des dates
– Corrections dans EstImageReconnue, HTMLVersTexte, TexteVersHTML
– Correction de la détection d’image et sur les combinaisons dans ImprimeTable
– Corrections dans cFormulaireValide
0.321 août 2023
Ajouts
– cEnregistrement : p_bTraceColonnesModifiées permet d’ajouter ou de retirer le nom des colonnes modifiés dans les traces
– cSourceDeDonnées : ajout d’un statut PasDeChangement (utilisé dans la méthode Ajoute pour éviter d’écrire des enregistrement chargés et non modifiés)
– cSourceDeDonnées.ListeRequête : vérification que les instances de cEnregistrement sont bien créés durant la lecture du résultat d’une requêtes
– cBaseDeDonnées : ajout du nom des alias de tables créés et supprimées dans les traces
Corrections
– cErreur.AjouteErreurWx : pouvait créer une exception dans certains cas et empêchait l’affichage de l’erreur
– cEnregistrement : meilleure prise en charge des colonnes lues et écrites le cas échéant (mode SQL)
– cSourceDeDonnées : meilleure détection du nombre de tables dans une requête
– cFormulaireValide : meilleure prise en charge des champs combinés (ex : cas où il suffit de remplir un des 2 champs passés en paramètres de ChampsObligatoires)
0.314 juillet 2023
Ajouts
– COL_GUI.DispCelluleDuChamp : donne le numéro de la cellule du champ Disposition dans laquelle un champ se trouve (ex : LIB_Test se trouve dans la cellule 2 de DISP_Test)
– COL_GUI.NomComplet : donne le nom complet du champ, plus précis que ..NomComplet, le # du plan en option
– COL_GUI.ChampPosition : donne la véritable position absolue d’un champ (car les ..x et ..y donnent parfois les positions relatives, surtout quand on imbrique des onglets, des fenêtres internes, des modèles de champs, …)
– COL_PCS.PageHTMLVersTexte : Portion de la version précédente de HTMLVersTexte qui enlève les éléments non-visibles d’une page HTML
Modifications
– cHTML.TraiteHTML : grosse optimisation du traitement
Corrections
– HTMLVersTexte : condition pour les caractères non ASCII
– cFormulaireValide : stabilisation de la classe suite à sa reprogrammation en V0.30
0.3012 juin 2023
Ajouts
– classe cHTML pour extraire dun contenu d’une page Web
– cBaseDeDonnéesHyperFile.TransactionAnnuleSiInterrompue : ajout de la connexion dans hTransactionAnnule
– cEnregistrement : ajout d’un statut SeraSupprimé (utile par exemple dans le cas où l’utilisateur supprime un élément dans l’interface utilisateur mais que l’on veut garder la variable auquel est rattaché l’info intacte dans un objet
– COL_Conversion : ChaineHasard accepte les caractères grecs, russes et arméniens ainsi que tout caractère supplémentaire passé en paramètre
– COL_GUI.NumOngletDuChamp : donne le numéro d’onglet d’un champ
– COL_GUI.Contraste : calcule le contraste entre 2 couleurs (permet de mieux adapter une couleur de texte de la couleur de fond)
– COL_PCS.gVersTexte : nouvelle version plus efficace et gestion de la couleur de texte et de fond
– COL_Vérification.CAN_NEQValide (vérifie le numéro d’entreprise du Québec) et EstNombreHexadécimal
Modifications
– Tous les paramètres « mot de passe » n’ont plus de type déclaré afin d’être compatible avec les chaînes indétectables (WD28+)
– cBaseDeDonnées.AliasUnique : mise en commentaire de la collecte des alias dans un tableau (à réactivé en cas de débug)
– cEnregistrement : mise à jour de m_sValCléEnCours et amélioration de la recherche
– cFormulaireValide : nouvelle version. Permet en plus de savoir quels sont les plans obligatoires, ceux qui sont en erreur, si tous les champs obligatoires sont remplis (pour rendre actif le bouton « Valider »). ErreurAffiche prend le paramètre « faux » pour masquer les erreur
– cLog : premier paramètre obligatoire dans les fonctions de boites de dialogue (sinon une erreur est logguée) et parcours des autres paramètres par MesParamètres..nbReçus
– cSourceDeDonnées.ListeRequête : meilleur calcul de « table multiple »
– COL_GUI : obligation de passer un champ en paramètre dans plusieurs fonctions
Corrections
– cEnregistrement.p_eStatutEnregistrement : l’affectation d’un nouveau GUID est faite dans l’affectation et non plus dans la récupération de la propriété
– COL_PCS.HTMLVersTexte : transformation des codes ASCII en lettre et gestion des codes en hexadécimal (ex : ' est une apostrophe)
– diverses corrections mineures
Suppression
– cBaseDeDonnées.AliasSupprime : obsolète
0.2910 janvier 2023
Ajouts
– Nouveaux multiplicateurs : ronna (10^27), quetta (10^30), ronto (10^-27) et quecto (10^-30)
– Les fonctions COL_Conversion.Million, Millions, Milliard, Milliards, Billion, Billions, Billiard, Billiards, Trillion, Trillions, Trilliard et Trilliards sur le même principe de Unité et Unités (voir version précédente)
– La fonction COL_GUI.TableListeAjoute permet d’alimenter un combo d’une colonne de table avec des valeurs différentes sur chaque ligne
– La fonction COL_PCS.JourEnCours (puisque AnnéeEnCours et MoisEnCours existent !)
– La fonction COL_Win.MiseEnVeille : autorise ou interdit la mise en veille de l’ordinateur
Modifications
– NombreEnLettres devient NumériqueEnFrançais et est optimisé au passage
– Adaptation à Windows 64 bits de COL_Win.BarreTâcheInfo()
– COL_PCS.Trace : utilisation de MesParamètres..NbReçus
– COL_Win.FichierIcône a maintenant un champ en paramètre et renvoie un buffer (l’image)
– cEnregistrement : toutes les colonnes sont prises en compte dans HashEnregistrement
– optimisation de cFTP.RépertoireExiste
Corrections
– Correction des fonctions Unité, Unités, Dizaine, Dizaines, Centaine, Centaines, Millier et Milliers (voir version précédente)
– cEnregistrement : meilleure gestion de m_sColonnesLues et suppression d’une trace intempestive dans la fonction Écrit
0.2830 septembre 2022Attention, cette version a modifié l'appel du constructeur de cSourceDeDonnées. Le 3eme paramètre, qui était auparavant la classe de type "enregistrement", accueille maintenant directement le tableau d'objets de type "enregistrement". Ceci permet de ne plus devoir mettre une ligne qui était de type m_tabEnregistrement <- m_tabVoiture.
Ajouts
– Prise en charge de la couleur du libellé des champs gérés via la classe cFormulaireValide
– Suppression des logs et des traces au démarrage de l’application en utilisant le dernier paramètre de cLog.LogInitTexte et cTrace.TraceInitTexte (utile aux développeurs)
– Quelques contrôles sur l’existence d’une connexion dans cSourceDeDonnées
– Ajout du paramètre bForceID dans cSourceDeDonnées.ÉcritTout (comme dans cEnregistrement.Écrit)
– Dans COL_Conversion, procédures Unité, Unités, Dizaine, Dizaines, Centaine, Centaines, Millier, Milliers. Exemple avec le chiffre 587.42 : Dizaine (au singulier) donnera 8, Dizaines (au pluriel) donnera 58
– COL_Données.LocalisationSelonAdresseIP : permet de récupérer le pays, la ville, latitude, longitude, devise, … à partir de l’adresse IP publique. Utilise pour cela ipstack.com chez qui il est nécessaire de créer un compte gratuit
– COL_Réseau.AdresseIPPublique : complémentaire à la procédure ci-dessus, utilise dyndns.org
– COL_Win.FichierPropriétés : récupère beaucoup de propriétés d’un fichier (voir aussi l’article Récupérer les attributs d’un exécutable)
– COL_WMI : WMI_AttributVersChaine et WMI_OSVersChaine permettent de transformer un code reçu des fonctions WMI en texte lisible
Modifications
– Changement de noms : p_ConnexionODBC > p_bConnexionODBC et p_EstConnecté > p_bEstConnecté dans les classes cBaseDeDonnéesXxx
– La méthode InstanceCrée et Nouveau de la classe cBaseDeDonnées ont fusionnés dans la méthode Nouveau. Cette dernière est virtuelle et peut donc être détournée si l’allocation dynamique des classes ne fonctionne pas (Java et Android).
– Diverses optimisations qui améliorent la performance des lectures d’enregistrements
Corrections
– Meilleure prise en charge d’une classe cTrace personnalisée dans cApplication
– Suppression des traces intempestives
– Changement dans la déclaration du cadre dans les méthodes de cFormulaireValide (pour compatibilité WD25+)
– Détection d’une requête multitable dans cSourceDeDonnées.ListeRequête
– Correction dans COL_Vérification.EstNombre, certains nombres n’étaient pas bien reconnus
– Problème de monétaire corrigé dans COL_Conversion.ConvertiUnité
0.273 juillet 2022
Ajouts
– cUtilisateurAvecExt : cUtilisateur utilise le LDAP mais ce dernier possède aussi 15 champs d’extension. cUtilisateurAvecExt hérite donc de cUtilisateur et ajoute les champs d’extension
– cBaseDeDonnéesExcel : il est maintenant possible d’utiliser un fichier Excel comme une base de données (chaque onglet étant alors une table). Cette version ne permet que la lecture et a été développée pour utiliser csdDevise et csdLangue. Ajout d’une nouvelle constante : cBaseDeDonnéesExcel.hAccèsNatifExcel et plusieurs autres modifications de cette classe et dans cSourceDeDonnées(voir ci-dessous)
cMedia et cFichierMP3 : classe de base pour la gestion des informations des fichiers média, en commençant par les MP3 (uniquement lecture et sans les images dans cette version). Utilisation de MediaInfo.dll et AudioGenie3.dll.
– ceLDAPUser.RechercheParIDEmployé
– Membre cFichierExcel.FormatDurée et prise en charge des cellules de type Durée dans plusieurs autres méthodes
– cFichierExcel.Ferme
– COL_Conversion.DateRelative : utilisée pour la gestion des jours spéciaux
– COL_Conversion.EntierVersDateHeure, l’inverse de DateHeureVersEntier
– COL_GUI.ExplorerAvecSélection : ouvre l’explorateur Windows avec le fichier, passé en paramètre, déjà sélectionné
– COL_Matériel.VolumeGlobal : permet de récupérer ou de modifier le volume globale du son (grâce à GVolume.dll)
Modifications
– cBaseDeDonnées.clFichier : permet de lier un fichier (ex : Excel) comme base de données (sans utilisation de la variable de connexion)
– Envoi d’un objet « cBaseDeDonnées » dans la méthode TableColonnes() des classes de gestion de base de données
– ceLDAPUser.RechercheSelonNomCommun devient ceLDAPUser.RechercheSelonNomDuUser
– cFichierExcel : identification plus claire des type et format des colonnes et des cellules grâce à des énumérations
– cFichierExcel : normalisation de quelques noms de propriétés
– cFichierExcel et cSourceDeDonnées : meilleur prise en charge du statut de lecture seule
– cGénérique._Guillemet prend maintenant un s à la fin
– cHTTP : le marqueur de fin de transmission est maintenant paramétrable via le membre m_eFinTransmission
– cLog.LogInitCourriel, le mot de passe est maintenant l’avant-dernier paramètre
Corrections
– Meilleure détection d’un enregistrement modifié dans cEnregistrement.Ecrit
– cFichierExcel.Ouvre : prenait mal en charge les fichiers xlsx
– Risque de bouclage entre les propriétés de cTable et la récupération des indexes/des colonnes.
– COL_Conversion.ChaineVersHexa
0.265 février 2022Cette version majeure contient une nouvelle collection de procédures qui gère le WMI et une série de classes pour accéder au LDAP (users, groups, OU). 7300 lignes de code en plus que la version 0.25.
Ajouts
– collection de procédures COL_WMI : contient 108 procédures donnant accès aux information sur le matériel de l’ordinateur
– 85 classes pour accéder aux LDAP sur serveur 2000, 2003, 2003R2, 2008, 2008R2 et 2012
– cBaseDeDonnées : liste de serveurs Windows (2000 à 2012) pour les classes LDAP
– cBaseDeDonnées : membres eVersionDuServeur (voir ci-dessus), bGèreUTF8 (pour LDAP) et sAutresParamètres
– cBaseDeDonnéesOracle : gestion du type LONG
– cBaseDeDonnéesSQLServer.TableIndexes : prend la colonne Identity comme clé unique en dernier recours
– cEnregistrement : gestion des colonnes à lire (seront aussi les seuls à être écrites)
– cEnregistrement.Écrit: la trace contient le nom des colonnes modifiées (et donc écrites)
– cEnregistrementLDAP.constantes : ajout des type d’instances et des types d’objets
– cErreur.AjouteErreur et AjouteAvertissement : dédoublonnage optionnel
– cSourceDeDonnées : la trace peut être désactivée en cas d’ajout (utile lors d’import de grande quantité de données)
– COL_Conversion.HeuresEnJoursTravaillés, CombinaisonProgressive, CombinaisonStd et CombinaisonStdNbr
– COL_DDE.DDEAccepteCnx, DDEConnecter et LigneCommandeExt : permet de récupérer, dans le programme courant, la ligne de commande d’une autre instance du programme lancée par 2xclic sur un fichier
– COL_GUI.FenêtreDessusTout : nouveau paramètre bActiver
– COL_GUI.FenêtreFixe : interdit le déplacement d’une fenêtre
– COL_GUI.EnumèreElementExt et EnumèreEnfantExt : récupère (avec récurrence) les handle des objets d’une autre application
– COL_PCS.ChronoDébut : gestion automatique du numéro de chrono
Modifications
– déplacement du nom de la machine et l’adresse IP de cUtilisateur à cApplication
– cApplication : meilleur gestion des classes « personnalisées » envoyées au constructeur
– cAppParamètres : ParamètreSauve n’utilise plus iniÉcrit. Permet ainsi d’espacer les sections et d’avoir des mots clés sans valeurs (à remplir ultérieurement à la main au besoin)
– cBaseDeDonnéesLDAP : constante hAccèsLDAP (chaine) remplacée par la constante standard hActiveDirectory
– cBaseDeDonnéesLDAP.Connecte et .Connecte_ : Ajout de la version du serveur, de la prise en charge de UTF8, de 6 paramètres (chaines) permettant de détecter le type d’objet LDAP dans leur DN et 7 paramètres (chaine) pour limiter, par défaut, les lectures des attributs selon l’objet lu
cBaseDeDonnées.STConnexion : sSchéma devient sSchémaOuDc
– cCommandeDOS.OutPuts devient cCommandeDOS.Résultat et renvoie une chaîne convertie de OEM en ANSI
– cEnregistrement : optimisation si lecture d’une seule table
– cEnregistrement.m_sHashEnregistrement devient m_bufHashEnregistrement (car pas nécessaire de transformer un buffer en chaine)
– cEnregistrementLDAP : RechercheCompteAD devient RechercheSelonCompteSAM
– cErreur.p_sErreurJSON et cErreur.p_sAvertissementJSON
– cFichier.Lit : nouvelle option pour lire depuis la fin
– cFichierExcel : méthode ColonneVersLettre devient globale
– cGénérique.TousLesMessages : amélioration de la récurrence
– cLog : m_bLogActif, m_nFichierTaille, m_nFichierNbMax, m_sCourrielDestinataires_Info, m_sCourrielDestinataires_Avertissement, m_sCourrielDestinataires_Erreur sont devenues publiques (les propriétés correspondantes ont disparues)
– cLog.LogCrash : amélioration du contenu du fichier crash
– cEnregistrement et cSourceDeDonnées deviennent abstraites
– cSourceDeDonnées.Raz : vidage aussi du tableau des éléments supprimés
– cSourceDeDonnées.NbLignes devient cSourceDeDonnées.OccurrenceSelonStatut
– cTrace m_bTraceActive, m_bTraceJauneEnTest, m_nTailleMax, m_nNbMax sont publiques (les propriétés correspondantes ont disparues)
– cUtilisateur : 10 propriétés modifiées du fait de la gestion différente du LDAP
– COL_Conversion.DateHeureDifférenceEnMinutes et DateHeureDifférenceEnSecondes : optimisation
– COL_WIN.BarreSupprimeIcône renvoie maintenant un booléen
Corrections
– cAppParamètres : gestion des valeurs par défaut dans la méthode Lit
– cLog.AjouteCourriel : inversion du nom de fichier et de son contenu
– cTrace.AjouteMéthode, AjoutePropriété, AjouteProcédure : correction dans la gestion automatique des erreurs et exceptions
– StructureVersJSON : l’attribut Certificat du type Courriel faisait planter la fonction
– COL_GUI.MailTo : transformation d’Unicode en Ansi et utilisation de URLEncore pour une meilleure compatibilité
Suppressions
cBaseDeDonnées.sAttributs : obsolète vue la gestion plus complète du LDAP
– cBaseDeDonnéesLDAP : méthodes inutiles : TableExiste, DateHeureUTC, ColonneExiste, Colonnes, Tables, Transactionxxx (implicites aux méthodes Écrit et ÉcritTout)
– cEnregistrementLDAP.constantes : migrée dans une classe LDAP
– cEnregistrementLDAP : migration d’une 10aine de méthodes liée à l’utilisateur (déjà dans cUtilisateur et cEnregistrementLDAP ne fait plus que gérer les utilisateurs). AjouteDébut/AjouteFin, ModifieDébut, ModifieFin remplacés par la méthode Écrit et ObjetSupprime par Supprime
0.2523 aoùt 2021
Ajouts
– InitHasard dans cGénérique
– La fonction NomFichierDansTailleMax donne le nombre de caractères max dans le nom d’un fichier selon l’OS. Fonction utilisée ensuite à quelques places dans Betula.
– Fonction TableSélectionne pour sélectionner une ligne de table après la suppression d’une ligne
– Méthode cEnregistrement.Importe pour importer un variant dans un classe complexe
– Gestion des personnalisations GUI de l’utilisateur (cApplication.m_bufPersonnalisations et m_sPersonnalisationChemin ainsi que les méthodes PersonnalisationCharge, PersonnalisationSauve et PersonnalisationSupprime) en utilisant par exemple FAAExporteParamètre
– cTable : utilisation des vues et des procédures stockées comme source de données : ajout des méthodes Vues, VueExiste, Procédures et ProcédureExiste dans cBaseDeDonnées et cBaseDeDonnéesSQLServer
– cSQL.Colonnes : gestion de la visibilité d’une colonne, du timestamp et des vignettes (HFSQL)
– cGénérique : ajout de l’alphabet grec, russe et armémien (minuscule et majuscule)
Modifications
– ChaineHasard a maintenant un paramètre pour que les caractères n’apparaissent qu’une fois dans la chaîne résultat
– Simplification de la fonction cCourriel.Envoi
– cSourceDeDonnées.Raz vide maintenant aussi l’indice de parcours et le tableau d’enregistrements
– Les fonctions ODBC spécifiques à une BD ont été mises dans les objets cBaseDeDonnéesxxx correspondants. Ajout des méthodes ODBCChemin et ODBCInstalle ainsi que ClientChemin (chemin de la dll d’accès à la BD)
– cBaseDeDonnéesLDAP : Utilisation d’un indice de connexion plutôt que le nom de session (comme les autres classes cBaseDeDonnéesxx)
– cSQL.Requête peut aussi utiliser une vue (pas une procédure stockée)
– ColonneOptimiseLargeur : meilleurs prise en compte des colonnes combo et filtre sur les lignes de hauteur nulle
Corrections
– Correction du nom de constantes dans cGénérique
– Plusieurs bouts de code mis en code conditionnel et ajout de valeur par défaut dans l’appel de certaines fonctions suite à un test en Java
– Distinctions entre m_sd et m_Alias selon le type d’accès aux tables (dans les endroits où ça manquait)
– cSourceDeDonnées.Trie : utilisation des constantes standard
– Ajout de retour de valeur en cas d’exception dans certaines méthodes
– Enlèvement du séparateur Espace dans quand Betula exploite une liste de tables (l’espace est accepté dans le nom de table de certaines BD)
– cFormulaireValide, suppression de paramètres obsolètes dans ChampNonObligatoire et ChampsNonObligatoires
– cLog.LogInitCourriel : mise du paramètre sExpéditeur en local (entraînait la création de dossier de log avec @domaine)
– gVersTexte : meilleure prise en charge des images dans le texte
– Corrections mineures dans ChampNomComplet
0.247 mars 2021
Ajouts
– cBaseDeDonnéesxxx.Connecte() : chargement automatique des colonnes et des indexes si le paramètre sGroupeOuTypeOuNomDeFichiers est différent de « * » pour PostegreSQL, SQLServer et Oracle (ceci minimise le nombre de requêtes à la base de données, Dans ce cas 1 seul passage dans TableColonnes et TableIndexes sinon autant de passage que de tables) + prise en charge, dans ce paramètre, des séparateurs : virgule, point-virgule, espace, TAB et RC.
– Centième de seconde dans la trace « enModeTest »
– Sécurité d’accès aux données dans cBaseDeDonnéesAS400 et MySQL
– cBaseDeDonnéesxxx.Tables : ajout d’un paramètre « sCondition » et rétention de la liste des tables si ce paramètre est vide (permet d’accélérer le retour de résultat de cette fonction et de cBaseDeDonnéesxxx.TableExiste)
– Utilisation de colonne de type « numeric » comme clé primaire autoincrémentale
– cBaseDeDonnéesOracle.TableIndexes : filtre sur les indexes calculés
– cColonne : ajout du domaine (ou schema, utile pour Oracle et PostgreSQL)
Modifications
– cBaseDeDonnéesxxx.Connecte() : requête directe pour récupérer la version du serveur (plus léger et efficace qu’un cSQL.Requête dans ce cas particulier)
– moins de trace lors du chargement des colonnes et des indexes et trace plus complète
Corrections
– cApplication.Constructeur : meilleure prise en charge des classes personnalisées cTrace, cLog, cUtilisateur et cAppParamètre passé en paramètre du constructeur
– utilisation de cnxDonnées..serveur à la place de sServeurPort dans cBaseDeDonnéesxxx.Connecte() (meilleur fonctionnement quand utilisation de Betula-secu)
– cSQL.Colonnes:8 : sNomTableUnique incorrect si aucun alias ou de table associée
0.2322 février 2021Cette version est axée sur la sécurité des connexions. Voir cette page.
Ajouts
-cLog.pg_nTimerImageÉcranEnSeconde (pour gérer la capture d’image en temps réel)
Modifications
-cLog.LogCrash : ajout des caratéristiques de l’exécutable
– contrôles dans les méthodes DateVersSQL, HeureVersSQL et DateHeureVersSQL
– cFormulaireValide.Vérifie : inversion des vérifications pour déterminer qu’une combo obligatoire ne renvoie pas de valeur (nécessaire pour éviter des erreurs intempestives quand la combo renvoie un objet)
Corrections
– cEnregistrement.Ajout : utilisation de la propriété p_sColonneAutomatique pour le code SQL de retour
-cLog.LogCrash : caractéristiques des composants
-BaseDeDonnéesSQLServer : la clé primaire auto-incrémentale doit être de type « identity » et « primaire »
0.224 février 2021
Ajouts
– cTrace : propriétés p_nNbMax et p_nTaille pour modifier le nombre et la taille des fichiers de trace en temps réel.
– cBaseDeDonnées.ConnexionSupprimeTout
Modifications
– cEnregistrement.SourceVersObjet reçoit un paramètre bCalculeCléPrimaire qui est à faux quand la première clé primaire faite dans une cSourceDeDonnées échoue
– cSourceDeDonnées.ListeRequête
– Déplacement de certains cApplication._Application.m_pclTrace.AjouteMéthode pour réduire la trace
– Suppression des traces dans cBaseDeDonnées et ajout dans les autres classes cBaseDeDonnéesxxx
– Méthodes « Déconnecte » des cBaseDeDonnéesxxx suite à un problème sous Oracle
– Meilleure gestion des clés uniques composées et des colonnes calculées
Corrections
– cEmail : ajout de pièce jointes dans les courriels internes
– cEnregistrement.Ajoute et cEnregistrement.MemoTéléverse
0.2126 janvier 2021
Ajouts
– classe cBaseDeDonnéesPostgreSQL et méthode SQLBinaireÉcrit, SQLBinaireLit32, SQLImageVersBinaire, SQLTableAvantColonne, et BooléenVersSQL dans les autres classes de cBaseDeDonnéesxxx
– Gestion des variables email et certificat dans StructureVersJSON
– Méthode cEnregsitrement.Relit et cSourceDeDonnées.RelitTout (relit l’enregistrement dans la BD au cas où il a été mis à jour par une autre application)
– Procédure PCS.SysRepAppData : SysRep(appData) est un répertoire standard dans Windows et accueille les fichiers de log. Pour les autres compilation, il est maintenant possible, sans changer le code, d’adapter ce chemin (ex : le répertoire de l’exécutable)
– Classe cFormulaireValide : ensemble de méthodes permettant de mettre les règles de validation de chaque champ d’un formulaire
– vérification du NIR (numéro de sécurité sociale en France)
– membre global mg_bResteConnecté dans les classes cBaseDeDonnéesxxx pour ne pas déconnecter automatiquement à la fermeture de la dernière connexion.
– interruption de la lecture du résultat d’une requête (membre m_bLectureAnnulée dans cSourceDeDonnées.ListeRequête)
Modifications
– cCourriel.Envoie : ajout de cc et cci, possibilité de mettre un expéditeur et une adresse de réponse séparée
– Meilleure compatibilité pour les projets compilés en Java
– cEnregistrement.MemoTélécharge : prend des caractéristiques de cBaseDeDonnéesxxx
– amélioration significative de la vitesse de lecture des données
Corrections
– structure de la source de données pour les écritures
– mémos hors table
0.207 octobre 2020Cette version est principalement axée sur l'optimisation de l'accès aux données. Les classes cColonne et cIndex ont été ajoutées, ce qui a permis une simplification/restructuration de cSQL et cTable. Les requêtes effectuées contiennent maintenant le nom de la table en avant du nom de la colonne (elle même entourée de caractères spécifiques pour éviter les problèmes des noms de colonne qui sont des mots clés). Betula reste néanmoins compatible avec les versions précédentes.
La gestion des erreurs a également été simplifiée. Exemple : m_pclErreur.AjouteErreur(m_pclErreur.MsgErreur()) devient m_pclErreur.AjouteErreurWx()
Ajouts
– StructureVersJSON : Trace de toutes les membres d’une variable email et interception d’une exception
– Méthode TypeVersWD dans toutes les classes des bases de données (centralise la transformation d’un type de colonne de la base de données concernée vers le type WinDev)
– Gestion de ROWID dans Oracle
– Conversion de date julienne en grégorienne et inversément (en DateEnCours dans COL_PCS)
– COL_PCS.gVersTexte : permet plus de flexibilité en supprimant certains types d’éléments (ex : on enlève la couleur rouge et le gras, mais l’italique est gardé)
– COL_Conversion.DateHeureVersEntier, COL_Conversion.ChiffresSeulement, cHTTPServeur.FonctionSupprimeTout, COL_GUI.EstComboOuverte
– cBaseDeDonnéesSQLServer : prise en charge de nouveaux types de colonne
– COL_Téléphone : permet de formater des numéros de téléphone brut pour l’écran (pays reconnus : France, Belgique, Canada, USA, Dom-Tom). Aussi LettreVersTéléphone (transforme une lettre d’un numéro de téléphone vers le chiffre correspondant)
– Fonctions HashVersBinaire et BinaireVersHash (quand on veut passer d’une colonne contenant le hash vers une colonne n’en utilisant pas, ref : https://wlplus.org/fr/betula/db/)
– cGénérique : constantes des jours de la semaine (pour fonction DateVersJour)
– cBaseDeDonnéesHyperFile.TransactionAnnuleSiInterrompue et cBaseDeDonnées.TransactionAnnuleTout (appelé d’ailleurs dans le destructeur de cApplication
Modifications
– cCourriel : gestion du port et du type de synchronisation. Modification de la méthode « envoi »
– Messages courriel mis en chaîne ANSI
– Meilleure prise en charge des fichier HFCS 5.5
– Simplification du code de LanceAppliWin
– cEnregistrement.CopieMembres devient cEnregistrement.CopieMembresDepuis (pour préciser que les membres sont copiés depuis l’objet donné en paramètre jusque dans l’objet courant)
– COL_Vérification.NomFichierValide devient COL_Vérification.EstNomFichierValide
– cCommandeDOS.ExécuteCommande
– Amélioration de la gestion des jauges (et son utilisation dans cHTTP et cFTP)
Corrections
– cOracle.SQLColonneMemoVide
– cBaseDonnéesSQLServeur.Sauvegarde modifiée et Restauration lancé de manière différente (pour accepter une grande quantité de données)
– cEnregistrement.Ajoute, cEnregistrement.Modifie, cEnregistrement.Dernier
– cLog.LogCrash (il manquait des fichiers dans l’archive)
0.1916 mars 2020
Ajouts
– Log des appels aux méthodes de cBaseDeDonnéesLDAP
– Fonction RéelVersDateHeure (norme IEEE754)
– Mise en mémoire des fichiers temporaires (fonction fFichierTemp) pour suppression de ces derniers quand le programme se ferme (fonction fFichierTempSupprimeTout)
– Collection de procédure pour DDE (pour l’instant pour gérer les messages d’erreur)
– Ajout de la connexion au GPU dans la méthode cUtilisateur.LoginLDAP
– Ajout du membre cEnregistrement.m_sEnregistrement (enregistrement sous format XML) duquel est déduit ensuite le membre m_sHashEnregistrement
– Vérification si un second enregistrement correspond au critère lors de la recherche (cEnregistrement.Recherche)
– Trace d’enregistrement non modifié dans cEnregistrement.Écrit
– cBaseDeDonnées.HashDansBinaire et HashHorsBinaire : permet d’intégrer ou pas le hash d’un mémo au début de celui-ci (pour la gestion du cache). Ces méthodes permettent de passer d’un mode à un autre (il faut pour cela gérer la cache et avoir, ou pas, une colonne ‘hash’ de la colonne ‘mémo’ traitée)
– Répertoire « cache » dans les méthode « connecte » des cBaseDeDonnéesxxx
– cSQL.EstColonneBinaire()
Modifications
– Gestion d’exception dans l’utilisation de la fonction Erreur()
– Boucle dans fFichierTemp pour éviter d’utiliser un fichier temp déjà existant
– Simplification de cErreur.Raz()
– cTrace.TraceInitTexte et cLog.LogInitTexte modifiés pour gérer le dossier utilisateur par défaut (utile en cas d’exécution multiple du même exécutable, exemple sur Citrix)
– cEnregistrement.m_pclTable rendu Public Constant au lieu de Protégé
– Meilleure gestion des mémos dans cEnregistrement.Ajoute, .Modifie, .Télécharge et .Téléverse
– Simplification de cEnregistrement.Liste (d’office sous forme de requête SQL à présent)
– Meilleure gestion des fichiers HyperfileSQL avec et sans analyse
– Retour dans la méthode cTable.SQLColonneMémoVide
– Meilleure gestion des ‘varchar’ et ‘text’ (unicode ou pas) dans cBaseDeDonnéesSQLServer
– Ajout du nom de la colonne traitée dans les méthodes SQLColonneMémoVide
Corrections
– Meilleur traitement de StructureVersJSON pour éviter les exceptions intempestives
– cGénérique.p_sErreurTout, p_sErreurToutJSON, p_sAvertissementTout et p_sAvertissementToutJSON simplifiés et corrigés
– cEnregistrement.Premier et cEnregistrement.Dernier notamment pour la gestion des mémos
– Gestion d’une exception dans cSQL.Requête pour les bases de données HyperfileSQL
0.1827 décembre 2019Cette version est principalement conçue pour personnaliser le framework (voir explication ci-dessus).
Ajouts
– cBaseDeDonnées et cBaseDeDonnéesSQLServer : méthodes ExécuteProcédure et ExécuteFonctionVersJSON (le résultat de la fonction est fournit en format JSON).
Modifications
– Le constructeur de cApplication accepte maintenant des objets cUtilisateur, cAppParamètres, cLog et cTrace
– Le constructeur de cUtilisateur accepte maintenant un objet cEnregistrementLDAP en paramètre
Corrections
– cBaseDeDonnées.Environnement déclenchait des exceptions intempestives
– Contrôle qui manquait dans cBaseDeDonnéesLDAP.Déconnecte
0.1723 décembre 2019
Ajouts
– Gestion du binary, smallint et uniqueidentifier dans cBaseDeDonnéesSQLServer
Modifications
– Mise en mémoire des termes « traduits » pas JSONEncode. Très utilisé dans la trace, ceci évite de transformer tout le temps les mêmes nom de colonnes. Augmentation significative de la réactivité de l’application.
– Parcours des paramètres envoyés à AjouteMéthode plutôt que les indirections
– Ajustements faits dans cEnregistrement.MemoTélécharge et MémoTéléverse
– Sortie de 2 membre de cGénérique de la sérialisation
Corrections
– Interception d’exceptions supplémentaires dans StructureVersJSON
– cTable.CléValeur gère mieux les dates, heures et date/heure
– cBaseDeDonnées.Environnement : mise en minuscule de la référence Serveur+Base de données (voir mise en minuscule dans les versions précédentes)
– Ajout d’un espace dans les méthode dateVersSQL et DateHeureVersSQL de cBaseDeDonnéesOracle
0.1625 octobre 2019933 lignes modifiées ou ajoutées (PCSOFT déteint sur l'équipe de développement de Betula ! 😉 )
Ajouts
– ColonneOptimiseLargeur : ajout d’une largeur maximum (ex : si une colonne texte contenant 5000 caractères, on peut limiter la largeur de la colonne à 600px au lieu d’avoir une colonne de 30.000px !)
– Méthodes SQLUnicodePréfixe et SQLUnicodeSuffixe dans cEnregistrement, cBaseDeDonnées et cBaseDeDonnéesSQLServer permettant d’encadrer une colonne texte du(des) « mot(s) clé » nécessaire(s) pour qu’elle soit comprise comme du texte unicode (ex en SQLServer, mettre « N » avant le quote du début de chaîne)
– cEnregistrement.CopieMembre : copie les membres du même nom dans un autre objet qui n’a pas la même structure (attention, V1 : des limitations s’appliquent)
– cTable : récupération du GUID dans l’information des colonnes (venant d’une analyse HyperFile)
– cBaseDeDonnées.DateVersSQL, HeureVersSQL et DateHeureVersSQL permettant de formater la date et la date/heure dans une requête selon la base de données utilisée
– cFTP.ETypeDateHeure contient les valeurs des constantes FTP (mais pour brider le passage de paramètres dans les méthodes de la classe)
– cFTP.FichierAttributs et cFTP.FichierDateHeure
– cRéseau : ajout du protocole SMTP sécurisé sur port 993
– cBaseDeDonnéesSQL : trace lors de la dernière déconnexion à une base de données
Modifications
– La procédure AnsiVersUnicodeAnsi devient JSONEncode et les caractères sont maintenant codés en double octets (unicode)
– La procédure UnicodeAnsiVersAnsi devient JSONDécode
– Traitement des exceptions dans ChampNomComplet
– La méthode cEnregistrement.TableVersObjet devient SourceVersObjet
– La méthode cEnregistrement.ObjetVersTable devient ObjetVersSource
– cEnregistrement : amélioration de la gestion du NULL lors de l’écriture (méthode Ajoute et Modifie)
– cEnregistrement : amélioration de la recherche utilisant une clé composée contenant une valeur NULL
– cTable : meilleur gestion de la création de table si inexistante (dans le cas de l’utilisation d’une analyse)
– cBaseDeDonnées.ObjetBaseDeDonnées : vérification que la connexion avait été déclarée au préalable
– cFTP.p_sRepEnCours ne s’exécute pas si le répertoire passé en paramètre est vide ou correspond au répertoire courant
– La méthode cBaseDeDonnéesSQLServer.DateVersColonne et DateHeureVersColonne deviennent respectivement DateVersSQL et DateHeureVersSQL (voir ajouts)
Corrections
– Ajustement de la conversion de la livre impériale de 0.45359243 à 0.45359237
– cEnregistrement.m_stConnexion n’apparaît plus dans la sérialisation
– cEnregistrement et cSourceDeDonnées : meilleur gestion des mémos (binaires) en lecture et écriture
– Méthode cApplication.p_SupportCourriel : nom de la variable « sAdresseCourriel » au lien de « Valeur » (bug non signalé par le compilateur !)
– cTable.Constructeur : hDéclareExterne utilisé pour toutes les tables qui ne font pas partie de l’analyse en cours
– cTable : Amélioration de la gestion des colonnes et des clés en minuscule (pour éviter des problèmes liés à la casse)
– cBaseDeDonnées.m_bConnexionODBC devient mg_bConnexionODBC (normalisation du nom)
– cBaseDeDonnées.Connecte.ChangeConnexion amélioré pour traiter différente configuration (avec et sans analyse)
0.1518 juillet 2019
Ajouts
– StructureVersJSON : Les valeurs de références d’un tableau associatif sont maintenant transformés en unicode
– ColonneOptimiseLargeur : gère les positions X utilisé dans gCoord ((et enlève les formatages gras, soulignés, italique et barré) pour calculer la bonne largeur
– cApplication.Constructeur : ajout du répertoire des traces
– cAppParamètres.ParamètresCharge : priorité du fichier INI s’il existe dans le répertoire de l’application ou dans C:\Users\NomUtilisateur\AppData\Roaming\ ou dans C:\Users\NomUtilisateur\AppData\Roaming\NomApplication
– cSourceDeDonnées : mise en mémoire de la dernière requête et ajout de la méthode ListeRafraichi pour réexécuter la requête initiale (faite préalablement avec la méthode Liste ou ListeRequête)
– cTable : ajout des nom d’origine dans les colonnes et les clés pour être utilisée dans ColonnesCléVersClé et CléVersColonnesClé
– cLog : nouvelles propriétés : p_sFichierLogChemin, p_coFichierNiveaux, p_coEventLogNiveaux, p_coBDNiveaux et p_coCourrielNiveaux
– cLog.LogCrash : ajout de ExeInfo(ExeVersionFormatWindows) et ajout de l’objet cBaseDeDonnées en JSON
– cBaseDeDonnéesSQLServer.Colonnes : utilisation du bigint
Modifications
– Les fichiers de trace et de log sont mis, par défaut, dans SysRep(srAppData) (= C:\Users\NomUtilisateur\AppData\Roaming\NomApplication) au lieu du répertoire des données SysRep(srAppDataCommun) ( = C:\ProgramData\NomApplication). Ceci pour assurer que si l’application est lancée par plusieurs utilisateurs (ex : environnement Citrix ou RDP), chaque utilisateur a ses propres log et trace. Le fichier INI reste dans SysRep(srAppData)
– cEnregistrement.MémoTélécharge : création du répertoire temporaire si inexistant (qui sert à extraire le mémo)
– cFichier.Ouvrir : anti-bouclage si l’ouverture du fichier de trace ne peut pas être fait
– cSQL : utilisation des noms de colonnes en minuscule dans les méthodes EstColonneXXX (car les tableaux associatifs sont sensibles à la casse)
Corrections
– StructureVersJSON : des accolades étaient en trop dans la désérialisation des connexions
– cEnregistrement.Ajoute : retour d’une clé composée en cas d’ajout d’enregistrement
– cLog : utilisation des logs quand plusieurs niveaux sont demandés (ex : coLogNiveauInformation+coLogNiveauAvertissement)
– cFichier.Postionne : correction sur la gestion du positionnement depuis la fin du fichier
0.1412 juin 2019
Ajouts
– cBaseDeDonnéesSQL.Colonnes : ajout de nouveaux types
Modifications
– COL_Log.iImprimeÉtat : une valeur de retour n’est plus obligatoire
– COL_Conversion.StructureVersJSON : vérification d’un objet vide pour éviter d’intercepter des exceptions
– cFichier : amélioration de l’ouverture des fichiers texte
Corrections
– cGénérique.p_sErreurTout et p_sErreurToutJSON et p_sAvertissementToutJSON et p_sAvertissementTout : plus de bouclage sur l’élément cTableReliée
– cTrace : meilleur gestion des traces en Unicode
– cApplication.Contructeur : le 3eme paramètre passe de booléen en cTrace.ETraceFormat pour choisir une trace en ANSI, en Unicode ou aucune trace
– cSourceDeDonnées.Ajoute : correction sur la mise en mémoire de clés composées
– cTable.CléValeur : correction permettant la recherche sur des champs ne faisant pas partie d’une clé
– cBaseDeDonnéesOracle.Connecte : correction sur le mot clé « schema »
0.1317 mai 2019
Ajouts
– Conversion des énergies;
– Conversion des consommations de carburant (voiture);
– Conversion de coordonnées WGS84 vers Lambert93;
– Conversion de Lambert (I, II, III, IV, II étendu et 93) vers WGS84;
– cBaseDeDonnéesSQLServer : détection des type de colonnes ‘float’.
Modifications
– JSONVersVariant : traitement des tableaux vides.
Corrections
– Interception de fin programme dans COL_Log (la trace faisait une sur-exception si l’objet cApplication n’était pas disponible);
– cGénérique.p_sErreurTout et cGénérique.p_sErreurToutJSON : pas de traitement de l’objet _Application (sinon bouclage).
0.1202 mai 2019
Ajouts
– Interception de FinProgramme pour l’ajouter dans le log (inspiré de Erreur);
– cFTP.Connecte : ajout d’un paramètre pour les erreurs ignorées;
– cFTP.Constructeur : ajout d’un paramètre pour mettre un / (ou pas) au début des chemins sur FTP (voir cFTP.FormateChemin);
– cFTP.RépertoireExiste : nouvelle méthode. La méthode Existe devient FichierExiste;
– cFTP.Liste : nouvelle méthode (liste des répertoires ou les fichiers).
Modifications
– COL_Conversion.CheminVersURL : peut traiter des chemins sans protocole (ex : « wlplus.org » au lieu de « http://wlplus.org ») car le protocole peut être géré autrement dans le code appelant (ex : cFTP);
– cEnregistrement.Ajoute : applique les mêmes règles pour les valeurs nulles que la méthode Modifie.
Corrections
– Memos lors de l’ajout d’enregistrement en Hyperfile;
– Recherche sur des clés composées contenant un booléen (qui peuvent être « null »);
– cSourceDeDonnées.ListeRequête : test de l’existence du paramètre sJaugeOuCallBack avant de l’exécuter.
0.1123 avril 2019
Modifications
– le membre cTable.m_sNomUnique passe de « Public constant » à « Privé ». La valeur peut être lue par la propriété cTable.p_sNomUnique (ajout aussi de la propriété p_sAlias).
– cTrace.StructureVersJSON : meilleure prise en charge des membres pas encore instanciés
Corrections
– Accès à des membres objet d’une instance de classe (problème de cTable.m_sNomUnique mal affecté).
– cTable.Colonnes : mauvais nom de table
– cTable.Constructeur : passage de l’objet cTable à son ancètre cSQL et appel de cSQL.p_sNomUnique après l’affectation du nom
Exemple
– Mise à jour de l’exemple pour être compatible avec la version 0.11
0.10d15 avril 2019Cette version a essentiellement modifié plusieurs objets pour une meilleure compatibilité avec Android.
Modifications
– cErreur : niveaux d’erreur mis en membres globaux et ajout de sur certains membres
– Compatibilité Android : cJauge, cEnregistrement, cLog, cFTP, cFichierTexte, COL_Réseau, COL_GUI, COL_PCS et COL_Win
0.10c07 avril 2019
Corrections
– ChampNomComplet et ColonneOptimiseLargeur
– Le membre _Application de cApplication devient un objet non typé pour les cas où un autre objet « Application » est créé en héritant de cApplication
– cGénérique.p_sErreurTout et cGénérique.p_sErreurToutJSON
– cUtilisateur.bSuperviseur et cUtilisateur.Lit suite à la séparation du module Groupware utilisateur (devenu un projet à part)
– Nom de la méthode SQLLimiteRequêteA
– Méthode cBaseDeDonnéesSQLServer.Tables peut lister des tables dans une base de données contenant des caractères spéciaux
Modifications
– Méthodes EstColonnexxx (et quelques membres) passent de cTable à cSQL pour les utiliser dans les appels directs à cSQL. Transparent puisque cTable hérite de cSQL.
Ajouts
– Paramètre « Lecture seule » dans cEnregistrement et cSourceDeDonnées (évite de calculer le hash de l’enregistrement inutilement > gain en performance). Constructeurs et plusieurs méthodes impactées.
– Méthode « Colonnes » dans cSQL pour connaître les colonnes d’une requête SQL faite en direct via cSQL
– Méthode « Occurrence » pour connaître le nombre d’enregistrement d’une requête SQL faite en direct via cSQL
0.10b01 avril 2019
Corrections
– cGénérique.p_sErreurTout et cGénérique.p_sErreurToutJSON
– cSQL, cBaseDeDonnéesSQLServer, cBaseDeDonnées, cTable, cEnregistrement et cSourceDeDonnées suite à la mise en évidence d’un problème de compilation en WD24.
– Correction dans COL_WIN.AfficheÉcranVeille et COL_GUI.ColonneHauteur
Ajouts
– SQLLimiteRésultatA dans cBaseDeDonnéesAS400
0.10a30 mars 2019Première version publique. Téléchargez aussi un projet d'exemple