PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → HPasse... ne passe pas.
HPasse... ne passe pas.
Iniciado por Monsieur Serge, 27,jul. 2020 06:04 - 3 respuestas
Miembro registrado
213 mensajes
Publicado el 27,julio 2020 - 06:04
Bonjour,

Dans les Todo de ma liste j'avais à protéger ma base de données avec un mot de passe.
Opération jumelée au cryptage, déjà défini dans l'analyse.

Petite moulinette réutilisable avec HChangeMotDePasse.
Hop, un nouveau mot de passe pour chaque fichier.

1) ..CryptageFic et ..ProtégéParMotdePasse indiquent vrai pour chaque table.
2) Je confirme par l'analyse de mon projet, je dois fournir un mot de passe.
3) Je confirme par le centre de contrôle, je dois fournir un mot de passe.
4) Je suis heureux.

Fin du mode "super utilisateur HFSQL".


-----------
Déclaré au niveau du projet:
MaConnexion est une Connexion

Sommaire de mon module de connexion:
MaConnexion..Provider = hAccèsHFClientServeur
MaConnexion..Serveur = "NomDuServeur:4900"
MaConnexion..Utilisateur = "NomDuCompte" <-- N'est pas un super utilisateur
MaConnexion..MotDePasse = "LeMotDePasse"
MaConnexion..BaseDeDonnées = "NomDeLaBD"
MaConnexion..Accès = hOLectureEcriture
MaConnexion..Cryptage = hCryptageRC5_16
//
bSuccès = HChangeConnexion(MaConnexion..BaseDeDonnées, MaConnexion)
SI bSuccès = Vrai ALORS bSuccès = HPasse(MaConnexion..BaseDeDonnées, "MotDePasseDeLaBD")
SI bSuccès = Vrai ALORS bSuccès = HOuvreConnexion(MaConnexion)
RENVOYER bSuccès

Le module retourne vrai mais j'ai un blocage sur mot de passe.
Le mot de passe est bon puisque le super utilisateur peut l'utiliser.

Même si je n'aime pas les "*", je cède à la tentation.
HChangeConnexion("*", MaConnexion)
HPasse("*", "MotDePasseDeLaBD")

J'ai encore un blocage.

HPasse après HConnexion? Contre l'avis de PcSoft? (https://doc.pcsoft.fr/fr-FR/?9000176)
Même résultat, j'ai un blocage sur mot de passe.

Variable de type Connexion, HChangeConnexion, HPasse, HOuvreConnexion, Forum.
J'ai pasé un temp fou à tenter de trouver la solution à mon problème.
Jusqu'à tout fermer et tout redémarrer, à tout hasard.

Je viens de résoudre mon problème par une bricole.

cListe est une chaîne = HListeFichier()
POUR TOUTE chaîne cFichier de cListe SEPAREE PAR RC
HPasse(cFichier, "MotDePasseDeLaBD")
FIN

Ça fonctionne, mais je suis déçu.
:(

Si j'ai 500 tables, ça fera autant d'appel au serveur.
Il y a quelque chose que je ne comprends pas...

Serge

--
-----
Parfois, la logique est implacable...
Miembro registrado
213 mensajes
Publicado el 27,julio 2020 - 17:12
Mmmm...

HPasse(MaConnexion..BaseDeDonnées, "MotDePasseDeLaBD")

Pas d'erreur, mais ça ne passe toujours pas.
J'ai une erreur de mot de passe lorsque j'ouvre une table.

HPasse("*", "MotDePasseDeLaBD")

Fonctionne ce matin...

Je soupçonne Windev de s'amuser à mes dépens...
;(

--
-----
Parfois, la logique est implacable...
Miembro registrado
291 mensajes
Publicado el 27,julio 2020 - 18:47
Bonsoir Monsieur Serge
par indirection ?

cListe est une chaîne = HListeFichier()
POUR TOUTE CHAÎNE cFichier DE cListe SÉPARÉE PAR RC
HPasse({cFichier}, "MotDePasseDeLaBD")
FIN

Bien cordialement
Miembro registrado
213 mensajes
Publicado el 27,julio 2020 - 19:42
Gemini,

cListe est une chaîne = HListeFichier()
POUR TOUTE chaîne cFichier de cListe SEPAREE PAR RC
HPasse(cFichier, "MotDePasseDeLaBD")
FIN

Le bout de code est fonctionnel tel quel, l'indirection n'est pas nécessaire.
Ce que je ne comprenais pas, c'est pourquoi je devais m'y résoudre.

hPasse("*", "MotDePasseDeLaBD") ne fonctionnait PAS hier, mais est fonctionnel ce matin.
:o

Bref, je vais me résoudre au "*" dans HPasse même si je n'aime pas l'idée.

Merci pour la note.

Serge

--
-----
Parfois, la logique est implacable...