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 !!!
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
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
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)
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
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 :-)