Logique de connexion à une bdd

Résolu
georgeduke Messages postés 167 Date d'inscription dimanche 6 février 2005 Statut Membre Dernière intervention 13 avril 2007 - 5 oct. 2005 à 21:48
georgeduke Messages postés 167 Date d'inscription dimanche 6 février 2005 Statut Membre Dernière intervention 13 avril 2007 - 6 oct. 2005 à 18:55
Salut les gens !!



J'ai appris grâce à ce site notamment comme se connecter en c# à une bdd et à exécuter des requêtes.



Mais j'ai une question existentielle... Dans le développement d'une
appli liée à une base de données, est-ce qu'on laisse ouverte la
connection à la base de données pendant toute la durée de l'utilisation
du logiciel ou doit-on fermer cette connection après chaque requette et
se reconnecter par la suite si on doit faire une autre requette et
ainsi de suite ??..



Désolé pour cette question de débutant, mais j'ai soif d'apprendre !!!



Merci d'avance

8 réponses

MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
5 oct. 2005 à 22:15
Disons que si tu enchaines les requetes, tu fermes a la fin de
l'enchainement. Mais tu ne laisses pas la connexion ouverte de
l'ouverture a la fermeture de l'application.

Une des raisons : le nombre de licences. Quand tu achetes un sgbd, on
peut te vend un nombre de licences, ce qui equivaut au nombre de
connexions simultanées a la base. Si les applis ne se deconnectent pas,
y'a des gens qui parfois ne pourraient plus travailler

Mx
3
georgeduke Messages postés 167 Date d'inscription dimanche 6 février 2005 Statut Membre Dernière intervention 13 avril 2007
5 oct. 2005 à 22:29
Ah oui d'accord je n'avais pas pensé à cette histoire de nombre de
licences (merci !) Je peux te demander si cette logique dans cet exemple
te parait bonne... :



...

******Connexion à la base***************

ici nous sommes sur la fenêtre du listing des clients -

REQUETTES POUR LISTER LES CLIENTS
******Fermeture de la connexion à la base***


ici on double clique sur le nom d'un client -

ici affiche l'écran du détail d'un client -


******Connexion à la base***************

REQUETTES POUR REMPLIR L'ECRAN DU DETAIL D'UN CLIENT

******Fermeture de la connexion à la base***



etc. J'ai bon ?
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
5 oct. 2005 à 22:32
Ca me semble etre comme il faut faire.


Mx
0
georgeduke Messages postés 167 Date d'inscription dimanche 6 février 2005 Statut Membre Dernière intervention 13 avril 2007
5 oct. 2005 à 22:41
Merci beaucoup pour ton aide !!

J'espère que ette méthode de connexions/déconnexions fréquentes avec une bdd ne sera pas un problème !!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
5 oct. 2005 à 22:59
Ne t'inquiete pas pour ca. Le mécanisme est fait pour, tant du coté du .Net que du coté du provider (comme avec le pooling de connexions par exemple)

Mx
0
taoetc Messages postés 346 Date d'inscription lundi 8 septembre 2003 Statut Membre Dernière intervention 3 septembre 2007 3
6 oct. 2005 à 08:43
Le principe de licence ne devrait pas être prise en compte. En effet, cela veut dire pour moi des ralentissements importants si le nombre de licences n'équivaut pas aux nombres d'utilisateurs simultané. Ce qui veut dire : a il y a quelqu'un qui travaille, j'attend mon tour. On dirait des licences installshield ca.

Apres, tous les sgbds, enfin ceux que je connais ne limite pas le nombre de connexion simultanée en fonction d'une licence.

Apres, le fonctionnement connexion deconnexion a chaque requete ou groupe de requete ,pourquoi pas. J'ai déjà fait ca, cela fonctionne correctement du moment que tu enchaines pas trop de requete de suite en connexion deconnexion.

Fait attention que la connexion ne démarre pas un serveur de données et que la déconnexion ferme ce serveur, sinon, ca va bien planter.

Berf, pas sur qu'il y ai une meilleure solution.
C'est en fonction de l'appli :
un utilisateur une bdd >>>> une connexion et une fermeture pour l'appli
plusieurs utilisateur une bdd >>> une connexion et une fermeture par groupe de requete
Cela semble le mieux dans l'absolu, mais c'est aussi en fonction du SGBD



In the mood for ... ba heu, for quelque chose qui est vachement bien ( oui je sais , n'importe quoi)
0
t_barbillon Messages postés 341 Date d'inscription mercredi 8 juin 2005 Statut Membre Dernière intervention 10 février 2009 2
6 oct. 2005 à 12:51
Salut, je suis d'accord avec Morpion Mx, ça m'est arrivé sur une bdd oracle. Le nb de connexoion était limité à 30 ce qui posait un pb assez rapiement si on ne ferme pas les
0
georgeduke Messages postés 167 Date d'inscription dimanche 6 février 2005 Statut Membre Dernière intervention 13 avril 2007
6 oct. 2005 à 18:55
Merci c'est vraiment génial de partager vos expériences !! J'ai donc
l'impression qu'il n'y a pas de façon unique de gérer les
connexions/deconnexions cela dépend de 3 facteurs :

- la politique du fournisseur SGBD en terme de licence

- le nombre d'utilisateurs de l'appli

- le volume et la fréquence de requêtes nécessaires à l'appli



Je me pose tout d'un coups ces questions car j'ai débuté en
développement avec une bdd "SQLBASE" qui n'a pas de limite en
connexions simultanées et au niveau du développement la connexion à la
base restait toujours ouverte, cela correspondait à une "session". Ce
qui posait de gros problèmes chez nos clients en wifi qui avaient des
micro coupures au niveau de leur réseau car ils devaient redémarrer
complètement l'appli avec moultes messages d'erreurs...



La je démarre un projet perso avec MySql, et cela change beaucoup la donne :-)
0
Rejoignez-nous