Bonjour à tous,
Afin de permettre à tous les logiciels avec lesquels nous sommes interfacés d'interroger les données de la base SQL Server de notre application Windev, je suis en train de développer un webservice en WD18 qui permettra de récupérer différentes informations style des stocks, des numéros de lot, ...
Mon WebService est écrit et contient différentes collections de procédure dont une dédiée à la connexion et à la déconnexion de la base de données SQL Server. La première reçoit les paramètres de connexion : Source de données ODBC, Utilisateur, mot de passe et base par défaut).
Ma question est la suivante : si un utilisateur lambda a besoin de plusieurs informations, est il nécessaire d'ouvrir et de fermer la connexion à la base de données lors de chaque interrogation ou est il possible de procéder de la sorte par le biais d'un appel à des procédures différentes pour chacune des étapes :
1 - Ouverture connexion
2 - Interrogation stock Article A
3 - Interrogation stock Article B
4 - Lecture des lots de l'article A
5 - Déconnexion
ou bien dois je procéder de la sorte :
1 - Ouverture connexion, Interrogation stock Article A, Déconnexion
2 - Ouverture connexion, Interrogation stock Article B, Déconnexion
3 - Ouverture connexion, Lecture des lots de l'Article A, Déconnexion
J'ai effectué différents tests portant sur la première méthode mais cela ne fonctionne pas. Entre l'appel de mes deux fonctions qui font la connexion à la base de données et celle qui interroge le stock dans ma base ma connexion est perdue.
J'ai tenté d'utiliser la fonction DeclareContexteWebService afin de définir mon environnement pour sauvegarder l'id de ma connexion mais lors des appels suivants l'id de ma connexion stockée dans une variable globale du projet n'est pas restaurée.
Je m'oriente donc la seconde méthode qui consiste à me connecter avant chaque lecture et à me déconnecter après chaque lecture. Donc à chaque appel d'une fonction de mon webservice cela ferait :
1 - Connexion
2 - Lecture des données
3 - Déconnexion
Si vous avez des avis sur la question ou si vous avez déjà été confronté à ce souci, n'hésitez pas à m'indiquer comment vous avez fait.
Alex
Partager