Accueil → WINDEV 2025 → Changer lien avec base de données SQL Server avec connecteur natif SQL Server
Changer lien avec base de données SQL Server avec connecteur natif SQL Server
Débuté par Roger Silva, 17 mar. 2025 18:37 - 3 réponses
Posté le 17 mars 2025 - 18:37
Bonjour, Voila mon problème : J'ai plusieurs servers SQL Server, qui ont les mêmes bases de données SQL Server. Je dois paramétrer l'accès à ces tables suivant un choix utilisateur. Dans l'analyse, j'ai défini un login, mot de passe, nom server, nom base de données, et je dois reparamétrer la connexion suivant le serveur choisi : HFermeConnexion(MaConnexionSQL) NumConnexion est un entier NumConnexion = HDécritConnexion(MaConnexionSQL,"Toto","Titi",Paramètre.NomServerSQL,Paramètre.NomBaseSQL,hAccèsNatifSQLServer,hOLecture) SI NumConnexion = 0 ALORS // La connexion a échoué : affichage d'un message explicatif SQLInfoGene() Erreur("La connexion à la source de données " + Paramètre.NomBaseSQL + " a échoué." + RC + ... "Code erreur : " + SQL.Erreur + RC + SQL.MesErreur) Ferme FIN // HChangeConnexion(Buchung,MaConnexionSQL) HChangeConnexion(,MaConnexionSQL) Jusqu'à ce point pas d'erreur. J'exécute une requête sur la table Buchung, et dès que je veux parcourir la requête voici l'erreur que j'ai : Le mécanisme de sécurité HFSQL s'est déclenché lors d'un parcours intégré du fichier 'REQ_SelEcritures' sur la rubrique ''. Une erreur de mot de passe est survenue sur la fonction 'HExécuteRequête' précédente et n'a pas été traitée.
Membre enregistré 11 messages
Posté le 18 mars 2025 - 11:20
Bonjour, Il doit surement manquer l'appel à la fonction HPasse(). Il doit exister un mot de passe sur un ou plusieurs fichiers de données. Bien cordialement, NN12
Posté le 19 mars 2025 - 16:36
NN12 a écrit : Bonjour, Il doit surement manquer l'appel à la fonction HPasse(). Il doit exister un mot de passe sur un ou plusieurs fichiers de données. Bien cordialement, NN12
En fait, le mot de passe est sur l'accès au serveur SQL server. Les fichiers en temps que tels n'ont pas de mot de passe d'accès. J'ai défini es mots de passe dans l'analyse. Par contre, comme nous avons plusieurs serveurs différents, il me faut pouvoir paramétrer l'accès à chaque server SQL. Est-ce possible et si oui comment ? Toutes mes tentatives sont sans succès ...
Membre enregistré 4 211 messages
Posté le 19 mars 2025 - 21:11
Bonjour, Roger Silva a écrit : J'ai défini es mots de passe dans l'analyse.
Le MDP est propre au serveur, il faut le définir lors de la création de la base, c'est ce MDP qui sera utilisé lors de la description de la connexion.Par contre, comme nous avons plusieurs serveurs différents, il me faut pouvoir paramétrer l'accès à chaque server SQL. Est-ce possible et si oui comment ?
Il faut définir une connexion par serveur (le login/MDP dans l'analyse est inutile voire dangereux.) A la voléecnx Serveur1 est C onnexion cnx Serveur2 est C onnexion saChoix est chaîne < BLOC Description de la connexion à Serveur1 > cnx Serveur1.Utilisateur = "Toto1" cnx Serveur1.MotDePasse = "MDP1" cnx Serveur1.Serveur = "Serveur1:PortServeur1" cnx Serveur1.BaseDeDonnées = "MaBase" cnx Serveur1.Provider = hAccèsNatifSQLServer cnx Serveur1.Accès = hOLecture < FIN > < BLOC Description de la connexion à Serveur2 > cnx Serveur2.Utilisateur = "Toto2" cnx Serveur2.MotDePasse = "MDP2" cnx Serveur2.Serveur = "Serveur2:PortServeur2" cnx Serveur2.BaseDeDonnées = "MaBase" cnx Serveur2.Provider = hAccèsNatifSQLServer cnx Serveur2.Accès = hOLecture < FIN > Saisie ( "Entrez le nom du serveur" , saChoix) SELON saChoix CAS "Serveur1" HChangeConnexion ( Buchung, cnx Serveur1) HExécuteRequête ( REQ_ SelEcritures , cnx Serveur1) CAS "Serveur2" HChangeConnexion ( Buchung, cnx Serveur2) HExécuteRequête ( REQ_ SelEcritures , cnx Serveur2) AUTRE CAS Erreur ( ChaîneConstruit ( "%1 inexistant" , saChoix) ) FIN
-- Il y a peut être plus simple, mais, ça tourne Quand tout a échoué, utilise l'option RTFM