Wednesday, December 19, 2018

Création d’un package de déploiement pour une application développée avec Windev



Je décris dans la suite les étapes nécessaires lors d’un déploiement d’une application développée en Windev.
 
Etape 1: Depuis le menu principal de Windev, sélectionnez ‘Créer la procédure d’installation de l’exécutable’, suivez les instructions à l’écran pour générer l’exécutable de l’application et les fichiers d’installation (cliquez généralement sur le bouton Suivant).









Etape 2: Cette étape est lancée automatiquement suite à l’étape précédente, à l’aide de l’assistant d’installation serveur de l’application, créez les fichiers du serveur d’installation de l’application dans le répertoire suivant: C:\App_Installation (nommé R1 dans la suite).  
 
Suivez les instructions de l’assistant, le fichier Install_Serveur.exe est créé en fin du traitement dans le répertoire R1.
Etape 3: Générez le package d’installation du poste client en exécutant Install_Serveur.exe du répertoire précédent, précisez le répertoire pour le package d’installation du poste client: C:\App_Installation(nommé R2 dans la suite). Le fichier Install.exe est créé en fin du traitement dans ce répertoire.
Remarque: lors de la génération des fichiers dans le répertoire précédent, il se peut que les fichiers de mise à jour soient déposés dans un sous-répertoire du répertoire précédent. Déplacez alors ces fichiers dans le répertoire R2.   
Etape 4: Paramétrez le fichier de mise à jour de l’application, il s’agit du fichier WDUPDATE.Net qui se trouve dans le sous-répertoire INSTALL du répertoire R2.
Voici un exemple de WDUPDATE.Net :
[APP]
;Fichiers d’installation de l’application 
CHEMIN=C:\App_Installation.VERSIONS\XXX\INSTALL
RESEAU=2
VERSION= XXX                                    ; ß Version actuelle
DERNIERE_VERSION= YYY                  ; ß Version précédente
UPDATE=INSTALL
DELAI=5
MSG_INTERDIT=Cette application a été verrouillée par son administrateur pour une mise à jour et n'est pas disponible pour le moment.
MSG_AVERTISSEMENT=Cette application va être interrompue pour une mise à jour. Veuillez sauver toutes vos modifications et quitter l'application.
MSG_ARRET=ATTENTION : Arrêt de l'application pour mise à jour.
;Délai d’attente à modifier en 1 seconde pour la demande de mise à jour
DELAI_AUTO=1
VALIDE_AUTO=2
REP_ETATU=<RepRef>\Etats et Requêtes Partagés
WDVERSION=10
VERSIONWDSETUP=23.0.23.0
CHEMIN_HISTORIQUE=C:\App_Installation.VERSIONS
UTILISABLE=0
DELAICHECKVERSION=0
SILENTCHECKVERSION=0
FLAGCFGCC=1;
GPWCOMMUN=
HISTOACTIF=1
HISTONBVERSIONS=0
HISTOTAILLEMAX=0
MODE=0
[WDSETUP]
MODE=-1
DELAI=1
 
 

Friday, November 9, 2018

Code Windev réalisant une connexion à une base de données SQL Server


Code du projet qui appele la classe de connexion à la base de données
// Connexion à la base de données
cCnxBase.gsFichierIni = "Appli.ini" // Nom du fichier .INI avec paramétres de connexion à la base de données
SI cCnxBase.ConnexionBD() = -1 ALORS
   Bip
   FinProgramme ("Erreur lors de la lecture des paramètres de connexion à la base de données" + RC + "Arrêt du programme")
FIN



Exemple du fichier .INI :
[ParamCnx]
Serveur=MonServeur 
Utilisateur=User_Test
MotDePasse=di5FmvXzGw // Valeur cryptée
Base=MaBase




Code exécutant une requête SQL via la connexion définie par la classe cCnxBase

PROCÉDURE Test()
s est une Source de Données

HExécuteRequêteSQL(s,cCnxBase.gConnexionBD, hRequêteSansCorrection ,"exec [Ma_Pro_Stock]") // Exécution d'une procédure stockée
FichierVersTableau(MonTableau_Graphe, s)
HLibèreRequête(s)




=======================================================================


Code de la classe cCnxBase


// Déclaration de cCnxBase
cCnxBase est une Classe
GLOBAL
  gConnexionBD  est une Connexion
  gsFichierIni  est une chaîne 
  gsCheminIni  est une chaîne
  gsNomServeur  est une chaîne
  gsUtilisateur   est une chaîne
  gsMotDePasse est une chaîne
  gsBase  est une chaîne
FIN



// ------------------------------------------------------------------

// Méthode ConnexionBD()

// Connexion à la base de données
PROCÉDURE PUBLIQUE GLOBALE ConnexionBD()

gsCheminIni=ComplèteRep(fRepExe()) + gsFichierIni
SI PAS fFichierExiste(gsCheminIni) ALORS
 Bip
 Erreur ("Le fichier de paramètres " + gsFichierIni + " n'est pas présent dans le répertoire de l'application '"+fRepExe()+"'"+RC+"Arrêt du programme")
 RENVOYER -1
FIN

//Récupération du nom du serveur sql dans le fichier ini
gsNomServeur=INILit("ParamCnx","Serveur","",gsCheminIni)
SI gsNomServeur="" ALORS
 Bip
 FinProgramme ("Le paramètre 'Serveur' n'est pas présent dans fichier de paramètres " + gsFichierIni + RC + "Arrêt du programme")
 RENVOYER -1
FIN

//Récupération de Utilisateur dans le fichier ini
gsUtilisateur=INILit("ParamCnx","Utilisateur","",gsCheminIni)
SI gsUtilisateur="" ALORS
 Bip
 FinProgramme ("Le paramètre 'Utilisateur' n'est pas présent dans fichier de paramètres " + gsFichierIni + RC + "Arrêt du programme")
 RENVOYER -1
FIN

//Récupération de Mot De Passe dans le fichier ini
gsMotDePasse=INILit("ParamCnx","MotDePasse","",gsCheminIni)
SI gsMotDePasse="" ALORS
 Bip
 FinProgramme ("Le paramètre 'Mot De Passe' n'est pas présent dans fichier de paramètres " + gsFichierIni + RC + "Arrêt du programme")
 RENVOYER -1
FIN

//Récupération de Base dans le fichier ini
gsBase=INILit("ParamCnx","Base","",gsCheminIni)
SI gsBase="" ALORS
 Bip
 FinProgramme ("Le paramètre 'Base' n'est pas présent dans fichier de paramètres " + gsFichierIni + RC + "Arrêt du programme")
 RENVOYER -1
FIN

gConnexionBD..Source   =  gsNomServeur
gConnexionBD..Utilisateur = gsUtilisateur
gConnexionBD..MotDePasse = Décrypte(gsMotDePasse, "MaClé") 
gConnexionBD..BaseDeDonnées = gsBase
gConnexionBD..Provider  = hAccèsNatifSQLServer
gConnexionBD..Accès  = hOLectureEcriture

SI HOuvreConnexion(gConnexionBD) = Faux ALORS
 RENVOYER -1
SINON
 HChangeConnexion("*",gConnexionBD)
 RENVOYER 1
FIN


// Autre possibilité de connexion à la base (par programmation):
// HDécritConnexion()
// HChangeConnexion()




Saturday, October 6, 2018

SQL Server 2016 with SP1 Express Edition (English)


Express Core (411 MB): 
https://download.microsoft.com/download/9/0/7/907AD35F-9F9C-43A5-
9789-52470555DB90/ENU/SQLEXPR_x64_E...

https://download.microsoft.com/download/9/0/7/907AD35F-9F9C-43A5-9789-52470555DB90/ENU/SQLEXPR_x64_ENU.exe


Express Advanced (1255 MB): 

https://download.microsoft.com/download/9/0/7/907AD35F-9F9C-43A5-9789-52470555DB90/ENU/SQLEXPRADV_x64_ENU.exe


Outil de génération du diagramme d'une base de données


https://fr.wikipedia.org/wiki/PowerAMC

Alternatives

Des alternatives libres à PowerAMC existent comme DBDesigner ou AnalyseSI, ne couvrant généralement qu'une partie des modélisations, notamment la modélisation E/R ou UML. GraphMake s'ajoute aussi à la liste des logiciels libres concurrents.
Pour les outils Merise, les principaux, sont: Mega, WinDesign (Cecima), Windev, Adelia, etc. Un outil RAD comme Delphi inclut dans ses éditions haut de gamme des outils de modélisation UML comme ModelMaker ou Together selon les versions.
D'autres outils existent, orientés UML comme ArgoUML, BOUML et Open ModelSphere en OpenSource, Poseidon for UML Rational Software Architect...
Citons aussi Devaki écrit en Java/Swing et sous licence GPL.