PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → code de connexion à une base de donnée client serveur
code de connexion à une base de donnée client serveur
Débuté par Kpessou Constantin, 12 juil. 2010 14:18 - 7 réponses
Posté le 12 juillet 2010 - 14:18
Bonjour.
Je suis un débutant en windev. Je veux créer une application client serveur en wd14. J'ai créé le projet qui comporte l'appli serveur. Là j'y ai créé ma base de donnée ainsi que la connexion. Maintenant, je veux me connecter à cette base de données via le serveur sur mon poste client. Et je n'arrive pas à le faire.
Merci pour votre aide.
voilale code que j'utilise et qui marche pas
sNomConnexion est une chaîne = "MaConnexion1"
sLibelléConnexion est une chaîne = "Connexion à HyperFileSQL Client/Serveur"
sTypeConnexion est une chaîne = "WinDevClientServeurHF"
sTypeAccès est un entier = hOLectureEcriture
sNomSource est une chaîne = "192.168.1.116:4900"
sNomBase est une chaîne = SAI_BD
sNomUtilisateur est une chaîne = "admin"
sMotDePasse est une chaîne = ""
sInfoEtendus est une chaîne = ";Cryptage = aucun;Initial Catalog=socket;Compression=aucun"

SI HOuvreConnexion(sNomConnexion, sNomUtilisateur, sMotDePasse, sNomSource, sNomBase, sTypeConnexion, sTypeAccès) ALORS
HChangeConnexion("*","MaConnexion1")
idfich est un entier
SI XMLDocument("Login")=Vrai ALORS
fCrée("C:\Mes Projets\Exercice socket\Exe\Login.xml")
idfich=fOuvre("C:\Mes Projets\Exercice socket\Exe\Login.xml")
XMLParent("Login")
XMLAjouteFils("Login","LOGIN")
XMLAjouteFils("Login","LOGIN",SAI_login)
XMLAjouteFils("Login","MOTDEPASSE",SAI_mdp)
XMLAjouteFils("Login","SERVEUR",SAI_Serveur)
XMLAjouteFils("Login","BASEDEDONNES",SAI_BD)
ch est une chaîne
ch=XMLConstruitChaîne("Login")
fEcrit(idfich,ch)
fFerme(idfich)
XMLTermine("Login")
FIN
Info("Connexion établie")
Ferme
Ouvre(Login)
SINON
Erreur(HErreurInfo())
Posté le 12 juillet 2010 - 16:16
Bonjour,
Il me semble que le paramètre type connexion est incorrect
ca devrait etre : hAccèsHFClientServeur

Cordialement
Daniel
Posté le 13 juillet 2010 - 10:36
Merci Daniel. J'ai corrigé et ça marche tjrs pas.J'ai crée une connexion à une base de donnée et c'est le code de cette connexion que j'ai copié dans l'init de mon projet.
Cordialement.


Daniel Favier a écrit dans le message de news <4bbecd00bf10fc4531719b1eff1f6958@news.pcsoft> :
Bonjour,
Il me semble que le paramètre type connexion est incorrect
ca devrait etre : hAccèsHFClientServeur

Cordialement
Daniel
Posté le 13 juillet 2010 - 10:58
Question toute bête : est ce que vous avez accès à votre base depuis l'analyse, quand vous avez créé la connexion?

Il semble que le code de connexion soit correct, mais il se peut que pour une raison quelconque votre serveur HF ne soit pas accessible.
Posté le 13 juillet 2010 - 11:29
Merci. Depuis mon analyse, j'arrive à acceder à ma base e données. Meme depuis le serveur HF, j'arrive à acceder à la base de donnéeset aux fichiers de données.
Résumons alors mon pblm.
Je veux créer une application client serveur avec acces à ma base de données. Comment faire?
Posté le 13 juillet 2010 - 12:58
Très bien. Dans ce cas, ton code devrait se trouver dans l'init du projet, mais à la suite, je forcerais un
HChangeConnexion("*", "MaConnexion")

Vérifies la syntaxe dans l'aide en ligne
http://doc.pcsoft.fr

Cordialement,

Laurent
Posté le 13 juillet 2010 - 15:51
Au fait, mon application doit se connecter à une base située sur un serveur HFClient serveur.
J'ai créé deux fenetres. Une, pour se connecter à la base de données et une seconde pour s'authentifier.
Au niveau de ma première fenêtre, je saisis les informations de connexion à ma base.
J'utilise donc hdécritconnexion()
hchangeconnexion()
Mais le problème est que si je saisis n'importe kel base de données même ki n'existe pas sur le serveur, il m'envoie le message de connexion.
Comment faire dans ce cas?
Posté le 13 juillet 2010 - 17:20
Bonjour,
Voici l'exemple de mon code pour ta connexion à la base HF Client/Serveur
Je récupére dans un fichier texte du nom de machine, serveur,... pour les orienter sur un serveur ou un autre. ==> paramétrable à vos clients

Tout ce code est dans l'initialisation du projet.

*******************************************************************************
Exemple du fichier externe .TXT
*******************************************************************************
NTSERVER;PC50;PC-CAMILLE;PC24;PC26;PC23;PC31;PORTABLE02;PC-CHANTAL;PC51;PC52;PC53;ANNEXE;PC20;PC21;PC28;PC36;PC-RECHANGE;PC54;PC55;PC56;PC57;PC58
ntserver:4900
EVERHFCS
admin
admin

HPSERVER;
hpserver:4900
EVERHFCS
admin
admin



*******************************************************************************
Code init projet
I : Variable
*******************************************************************************
//Variable de connexion à la base de donnée
gsCNX_Serveur est une chaîne //le serveur (Nom ou AdresseIP suivi du port ":4900" standard mondiale HyperFile Client/Serveur)
gsCNX_NomServeur est une chaîne //le serveur (Nom du Serveur sans le port)
gsCNX_BaseDonnee est une chaîne //Nom de la base de donnée (se trouve sous le répertoire "\Serveur HF\BDD\" du serveur Manta HF C/S)
gsCNX_UserBDD est une chaîne //Nom d'utilisateur de la base de donnée (non pas du serveur NT)
gsCNX_MotPasseBDD est une chaîne //Mot de passe de la base de donnée (non pas du serveur NT)

gCNX01 est une Connexion //Connexion au serveur de la base de donnée à déclarer


*******************************************************************************
II : Récupération dans un fichier texte du nom de machine, serveur,... pour les orienter sur un serveur ou un autre. ==> paramétrable à vos clients
*******************************************************************************

//Lecture des paramètres réseau pour la base de donnée
SI SansEspace(gsEditions1) <> "DEV" ALORS
Message("Ouverture fichier : "+fRepExe()+"\EVCONNEX.TXT")
IdFicConnex = fOuvre(fRepExe()+"\EVCONNEX.TXT", foLecture)
SINON
Info("Vous êtes en mode test !!","Connexion à la base de test.")
Message("Ouverture fichier : "+fRepExe()+"\EVCONXTS.TXT")
IdFicConnex = fOuvre(fRepExe()+"\EVCONXTS.TXT", foLecture)
FIN
SI IdFicConnex <> -1 ALORS
//Recherche du nom de SCANNER pour connexion à un serveur selon la description dans le fichier externe EVCONXSC.TXT
sListeScan = fLitLigne(IdFicConnex)
TANTQUE sListeScan<>EOT
nRang = 1
sNomPC = Majuscule(SansEspace(ExtraitChaîne(sListeScan,nRang,";")))
TANTQUE sNomPC<>RC ET sNomPC<>EOT ET sNomPC<>Majuscule(SansEspace(NetNomMachine())) ET sNomPC<>Majuscule("TOUTPC")
nRang ++
sNomPC = Majuscule(SansEspace(ExtraitChaîne(sListeScan,nRang,";")))
FIN
SI sNomPC=Majuscule(SansEspace(NetNomMachine())) OU sNomPC=Majuscule("TOUTPC") ALORS SORTIR
sListeScan = fLitLigne(IdFicConnex)
FIN

//Récupération paramétre de connexion
SI sNomPC<>RC ET sNomPC<>EOT ET sNomPC<>""ALORS
gsCNX_Serveur = fLitLigne(IdFicConnex)
gsCNX_BaseDonnee = fLitLigne(IdFicConnex)
gsCNX_UserBDD = fLitLigne(IdFicConnex)
gsCNX_MotPasseBDD = fLitLigne(IdFicConnex)
gsCNX_CheminParam = fLitLigne(IdFicConnex)
gsCNX_CheminParam = ComplèteRep(gsCNX_CheminParam)
SINON
SI SansEspace(gsEditions1) <> "DEV" ALORS
FinProgramme("Ce poste n'est pas affecté à un serveur.","Voir Fichier : "+fRepExe()+"\EVCONNEX.TXT","Nécessaire pour la connexion à la base de donnée.","","Fin de Prgramme !!!")
SINON
FinProgramme("Ce poste n'est pas affecté à un serveur.","Voir Fichier : "+fRepExe()+"\EVCONXTS.TXT","Nécessaire pour la connexion à la base de donnée.","","Fin de Prgramme !!!")


SINON
SI SansEspace(gsEditions1) <> "DEV" ALORS
FinProgramme("IMPOSSIBLE d'ouvrir le fichier :",fRepExe()+"\EVCONNEX.TXT","Nécessaire pour la connexion à la base de donnée.","","Fin de Prgramme !!!")
SINON
FinProgramme("IMPOSSIBLE d'ouvrir le fichier :",fRepExe()+"\EVCONXTS.TXT","Nécessaire pour la connexion à la base de donnée.","","Fin de Prgramme !!!")
FIN
FIN
SI fFerme(IdFicConnex) = -1 ALORS
SI SansEspace(gsEditions1) <> "DEV" ALORS
Erreur("Pb fermeture","EVCONNEX.TXT")
SINON
Erreur("Pb fermeture","EVCONXTS.TXT")
FIN
FIN


*******************************************************************************
III : Paramètres de la connexion
*******************************************************************************
gcnx01..Provider = hAccèsHFClientServeur
gcnx01..Serveur = gsCNX_Serveur
gcnx01..BaseDeDonnées = gsCNX_BaseDonnee
gcnx01..Utilisateur = gsCNX_UserBDD
gcnx01..MotDePasse = gsCNX_MotPasseBDD
gcnx01..Accès = hOLectureEcriture
gcnx01..Cryptage = hCryptageNon

gsCNX_NomServeur = Majuscule(SansEspace(ExtraitChaîne(gsCNX_Serveur,1,":")))

Message("Connexion Serveur et Base de données...")
// Ouverture de la connexion
SI PAS HOuvreConnexion(gcnx01..Nom) ALORS
FinProgramme("Ouverture Connexion","IMPOSSIBLE ! ! !","Serveur : "+gsCNX_Serveur,"BDD : "+gsCNX_BaseDonnee,"Vérifiez la connexion réseau.","","Fin de Programme !!!")
FIN

SI PAS HChangeConnexion("*",gcnx01..Nom) ALORS
FinProgramme("Changement Connexion","IMPOSSIBLE ! ! !","HyperFile Client/Serveur : ",gsCNX_BaseDonnee,"","Fin de Programme !!!")
FIN

FIN
FIN