|
Site AWP et connexion BDD |
Débuté par Vincent Lecomte, 26 mai 2016 13:49 - 13 réponses |
| |
| | | |
|
| |
Membre enregistré 240 messages Popularité : +3 (3 votes) |
|
Posté le 26 mai 2016 - 13:49 |
Bonjour,
J'ai déployé mon site AWP sur mon serveur mais celui-ci semble vouloir utiliser la connexion définie dans l'analyse. C'est toujours comme ça ? On ne peut pas initialiser la connexion via le code global du projet ? Car c'est ce que je faisais et jusqu'à présent ça marchait... Mais sur le serveur il semble tenter la connexion à la BDD principale de l'analyse...
Pas cool ça ! Merci pour votre aide...
-- Vincent |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 240 messages Popularité : +3 (3 votes) |
|
Posté le 26 mai 2016 - 14:08 |
Je suppose qu'en fait dans ce cas ci - HOuvreConnexion() devient inutile - Idem pour HChangeConnexion()
-- Vincent |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 240 messages Popularité : +3 (3 votes) |
|
Posté le 26 mai 2016 - 14:35 |
Bon, j'ai laissé le HChangeConnexion() et supprimé HOuvreConnexion(). J'utilise désormais la connexion à l'analyse et ça marche bien
-- Vincent |
| |
| |
| | | |
|
| | |
| |
Posté le 26 mai 2016 - 20:59 |
Bonjour Vincent
Bon, j'ai laissé le HChangeConnexion() et supprimé HOuvreConnexion(). > J'utilise désormais la connexion à l'analyse et ça marche bien
perso, je te conseille de faire l'inverse. ENLEVE la connexion qui est dans l'analyse, et gère tout le temps avec des hachangeconnexion, en lisant un fichier ini pour ls paramètres. Comme ca, test, déploiement de test, déploiement final, déploiement multiples pour plusieurs clients, tout fonctionne facilement
Cordialement
-- Fabrice Harari Consultant WinDev, WebDev et WinDev Mobile International Plus d'information sur http://fabriceharari.com |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 240 messages Popularité : +3 (3 votes) |
|
Posté le 27 mai 2016 - 10:39 |
Si j'enlève la connexion de mon analyse, plus aucun fichier n'est lié... J'ai essayé de dé-lier la connexion pour un fichier mais il ne veut pas en entendre parler...
Si je supprime la connexion le générateur d'analyse m'envoie à la gare en disant que chaque fichier doit être lié à une connexion. -- VincentMessage modifié, 27 mai 2016 - 10:41 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 240 messages Popularité : +3 (3 votes) |
|
Posté le 30 mai 2016 - 08:21 |
Fabrice (ou quelqu'un d'autre ?), je reviens vers toi pour ce qui est d'enlever la connexion à l'analyse... Etant donné que Webdev ne me laisse pas le faire, quelle est ta solution (je passe peut-être à côté d'un truc tout bête...)
-- Vincent |
| |
| |
| | | |
|
| | |
| |
Posté le 30 mai 2016 - 13:13 |
Moi je procède comme suit
a l'initialisation je ferme les fichiers, puis je ferme la connexion de développement. Ensuite je déclare la connexion que le programme ou le site doit utiliser, puis je ré ouvre les fichiers.
Le code ci dessous devrait te permettre d'arriver a ce résultat.
HFerme("*") HFermeConnexion(MaConnexion) MyIni est une chaîne = ComplèteRep(fRepExe()) + "application.ini"
SI PAS fFichierExiste(MyIni) ALORS INIEcrit("DATAS","BaseType","mysql",MyIni) INIEcrit("DATAS","BaseHost","localhost",MyIni) INIEcrit("DATAS","BasePort","3306",MyIni) INIEcrit("DATAS","BaseUser","root",MyIni) INIEcrit("DATAS","BasePassword","password",MyIni) INIEcrit("DATAS","BaseName","basename",MyIni) FIN
xport est un entier
ValConnexion est un booléen ValChangement est un booléen
BaseType est une chaîne BaseName est une chaîne BaseUser est une chaîne BasePassword est une chaîne BaseHost est une chaîne BasePort est une chaîne
BaseType = INILit("DATAS","BaseType","mysql",MyIni) BaseName = INILit("DATAS","BaseName","nomdelabase",MyIni) BaseUser = INILit("DATAS","BaseUser","root",MyIni) BasePassword = INILit("DATAS","BasePassword","none",MyIni) BaseHost = INILit("DATAS","BaseHost","localhost",MyIni) xport = Val(INILit("DATAS","BasePort","0",MyIni))
SELON xport CAS 1 A 65536 BasePort = "server port="+NumériqueVersChaîne(xport) AUTRE CAS BasePort = "" FIN
MaConnexion est une Connexion MaConnexion..Accès = hOLectureEcriture MaConnexion..BaseDeDonnées = SansEspace(BaseName) MaConnexion..InfosEtendues = BasePort MaConnexion..Libellé = "Connexion à MySQL"
SELON BaseType CAS "mysql" MaConnexion..Provider = hAccèsNatifMySQL CAS "oracle" MaConnexion..Provider = hAccèsNatifOracle CAS "sqlserver" MaConnexion..Provider = hAccèsNatifSQLServer AUTRE CAS MaConnexion..Provider = hAccèsHFClientServeur FIN
MaConnexion..Serveur = BaseHost MaConnexion..Source = "" MaConnexion..Utilisateur = BaseUser MaConnexion..MotDePasse = BasePassword
ValConnexion = HOuvreConnexion(MaConnexion)
SI ValConnexion = Vrai ALORS ValChangement = HChangeConnexion("*",MaConnexion) SI ValChangement = Vrai ALORS SINON FIN SINON FIN
Tu peux aussi utiliser la méthode "HDécritConnexion" mais je connais pas mal de personne qui ont eu des problèmes avec MySQL quand le port utilisé n'est pas le port par défaut (3306)
J'espère que ça t'aidera. |
| |
| |
| | | |
|
| | |
| |
Posté le 30 mai 2016 - 21:16 |
Bonjour Vincent,
Fabrice (ou quelqu'un d'autre ?), je reviens vers toi pour ce qui est d'enlever la connexion à l'analyse... Etant donné que Webdev ne me laisse pas le faire, quelle est ta solution (je passe peut-être à côté d'un truc tout bête...)
Nous montrer des copies d'écran du "ne me laisse pas le faire" ?
Cordialement
-- Fabrice Harari International WinDev, WebDev and WinDev mobile Consulting
More information on http://www.fabriceharari.com |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 240 messages Popularité : +3 (3 votes) |
|
Posté le 31 mai 2016 - 09:18 |
Je peux supprimer ma connexion en ouvrant l'analyse, puis depuis l'Explorateur d'Analyse -> Connexions, supprimer la connexion. Cependant Webdev demande à ce que cette fameuse connexion soit décrite dans l'analyse pour lier les fichiers et éventuellement faire la mise à jour depuis celle-ci (ce qui me semble assez logique), sans quoi il ne peut pas la regénérer.
La solution de Jicé semble vraiment pas mal... Mais dans le cas présent il y a bien deux accès à la BDD : - Le 1er accès est automatique et est effectué à partir des propriétés de l'analyse. Potentiellement une petite perte de temps... - Fermeture de la première connexion dans ce cas donc de nouveau, potentiellement une perte. - Second accès à partir du fichier .INI.
On a donc une ouverture auto, une fermeture et une ré-ouverture de connexion. Ce que je souhaite éviter c'est la première étape. Mais ça ne semble pas possible à moins que je passe à côté de quelque chose
-- Vincent |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 240 messages Popularité : +3 (3 votes) |
|
Posté le 31 mai 2016 - 12:05 |
C'est moi ou avec un fichier INI la lecture des paramètres est plus longue ?! La connexion à mon site est plus longue de bien 2 secondes à chaque fois...
Bizarre, j'ai mis des date/heure système pour voir ce qui prenait du temps et dans les deux durées j'obtiens la même chose au point A et au point B. Du coup je me demande d'où vient la lenteur de la connexion car quand je ping mon serveur c'est nickel (14 ms) et la page de base de IIS répond au doigt et à l'oeil.
En debug ça répond très vite... Donc c'est étrange
Arf, je viens de tester en localhost mon site, directement sur le serveur, même phénomène... Le navigateur mouline sur Connexion... Puis après 2-3 secondes le site apparait. Grrrr! Y a un stût quelque part... Chose comique, les applis Web répondent vite en localhost.
-- VincentMessage modifié, 31 mai 2016 - 13:09 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 240 messages Popularité : +3 (3 votes) |
|
Posté le 31 mai 2016 - 13:17 |
J'ai réglé le problème ...
Au lieu de placer le port dans InfosEtendues, j'ai mis
GP_cnxDilibel..Serveur = sBaseHost+":"+sBasePort
Et là je n'ai plus mon problème de délai de connexion !
-- Vincent |
| |
| |
| | | |
|
| | |
| |
Posté le 31 mai 2016 - 18:29 |
Vincent Lecomte a écrit :
J'ai réglé le problème ... Au lieu de placer le port dans InfosEtendues, j'ai mis GP_cnxDilibel..Serveur = sBaseHost+":"+sBasePort Et là je n'ai plus mon problème de délai de connexion ! -- Vincent
Comme cela est curieux...?
En effet auparavant je me servait exclusivement de la méthode : HDécritConnexion comme suit
HDécritConnexion(:ConnexionName,:BaseUser,:BasePassword,:BaseHost,:BaseName,hAccèsNatifMySQL,hOLectureEcriture)
et lorsque le port n'était pas celui par défaut je rajoutais ":" + sBasePort à l'adresse du serveur de façon a obtenir ex: 192.168.1.100:7799 comme tu le fait toi meme. hors comme je l'ai indiqué dans mon post, dès que j'utilisai un port différent de 3306 cela ne fonctionnait plus.
Peut être que cela venait de la DLL "LibMysql.dll' utilisée, il y en a plusieurs version et ce serai bien de comparer celles utilisées.
La version que j'utilise est la 5.5.13.0 du 24/05/2014.
En attendant, merci pour la correction je vais de ce pas tester cela sur ma config. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 240 messages Popularité : +3 (3 votes) |
|
Posté le 01 juin 2016 - 12:08 |
La solution est super mais il faut prévoir à chaque fois de bien vérifier que MaConnexion est ouverte (avec une variable) sinon il refait appel directement à la connexion de l'analyse -- VincentMessage modifié, 01 juin 2016 - 12:25 |
| |
| |
| | | |
|
| | |
| |
Posté le 02 juin 2016 - 18:54 |
Vincent Lecomte a écrit :
La solution est super mais il faut prévoir à chaque fois de bien vérifier que MaConnexion est ouverte (avec une variable) sinon il refait appel directement à la connexion de l'analyse -- Vincent
Bonjour a tous
Normalement c'est à cela que sert le "HChangeConnexion" il permet de déterminer pour chaque fichier quelle connexion utiliser ou tous les assigner a une connexion via la commande
HChangeConnexion("*",MaConnexion)
Il y a une chose que je n'ai pas précisé, c'est que dans l'exemple j'ai créé une nouvelle connexion, dans la réalité on y est pas obligé, il suffit de changer les paramètres de votre connexion de développement "ConnexionDev"
On ferme tous les fichier --> Hferme("*") On ferme la connexion de dev --> HfermeConnexion("ConnexionDev")
pas besoin de faire le "MaConnexion est une connexion
et la on assigne les variables du INI directement à "ConnexionDev" au lieu de les assigner à "MaConnexion"
MaConnexion..Serveur = BaseHost MaConnexion..Source = "" MaConnexion..Utilisateur = BaseUser MaConnexion..MotDePasse = BasePassword
devient
ConnexionDev..Serveur = BaseHost ConnexionDev..Source = "" ConnexionDev..Utilisateur = BaseUser ConnexionDev..MotDePasse = BasePassword
Ensuite on ouvre la connexion
ValConnexion = HOuvreConnexion(ConnexionDev)
du coup le "HChangeConnexion" devient inutile et il n'y a plus qu'a rouvrir les fichiers HOuvre("*")
ça a son importance car dans certain cas il est recommandé d'indiquer le nom de la connexion à utiliser dans certaine requête SQL.
Alors si vous avez écrit ceci
HExécuteRequête("MaRequete","ConnexionDev",hRequêteDéfaut,"parametre-1","parametre-2")
la requête essaie d'utiliser la connexion "ConnexionDev" alors que vous l'avez fermée pour ouvrir une nouvelle connexion.
En ne changeant que les paramètres tous les problèmes devrait disparaître.
---> |
| |
| |
| | | |
|
| | | | |
| | |
|