|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre confirmé
![]() Inscription : juin 2003 Messages : 858 ![]() |
Bonjour à tous,
Voilà, je travaille avec une base SQL Server Compact et lorsque je lance une instruction censée lancer une requête, il me fait l'erreur: "trop de sessions sont ouvertes". Pourtant, j'attaque cette base depuis qu'une seule appli Web. (je fais des accès à un webservice distant qui met à jour ma base) Je croyait que c'était une BDD gratuite, donc pas de limites... Avez vous des idées ? Merci d'avance. David.
__________________
David. |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Sylvain DevidalChef de projets Générix Inscription : février 2010 Messages : 1 062 ![]() |
La limitation ne vient pas du fait qu'elle soit gratuite ou non, mais du fait que c'est une base de données fichiers à peine améliorée, comme les drivers JET pour Access.
=> SQL Server Compact ne supporte pas (ou mal) les accès concurrents. Je pense que ton erreur provient de là : t'as déjà une connexion ouverte sur ta base et pour des raisons d'intégrité, il refuses que tu en ouvres une seconde. PS : Pourquoi n'utilises-tu pas SQL Server Express ? C'est gratuit aussi, mais au moins c'est un vrai SGBD... Qui supporte autant de connexion concurrentes que tu veux. |
|
|
00
|
|
|
#3 |
|
Membre confirmé
![]() Inscription : juin 2003 Messages : 858 ![]() |
Bonjour StringBuilder,
Merci pour ta réponse. En fait, c'est parce que je faisait un executeNonQuery dans une boucle sans fermer le connecteur. ![]() Je ne peut pas mettre SQL Server cas c'est des clients légers et il n'est pas question d'installer SQL Server sur chacun d'eux.
__________________
David. |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Sylvain DevidalChef de projets Générix Inscription : février 2010 Messages : 1 062 ![]() |
Ah ben oui, forcément, si tu ouvres des milliers de connexions en même temps aussi
Je me disais bien aussi que même si SQL Server CE n'est pas terrible, c'est quand même un minimum multi-connexion... Pas pire qu'Access quoi... Mais guère mieux non plus |
|
|
00
|
|
|
#5 |
|
Membre confirmé
![]() Inscription : juin 2003 Messages : 858 ![]() |
Hummm, n'exagérons rien... disons un demi millier...
C'est vrai qu'à l’utilisation, je remarque plusieurs manques par rapport à son grand frère : - Pas possible de mettre plusieurs requêtes séparées par des ; dans un CommandText. - Pas de requêtes imbriquées (sous requête dans le select). - Aucun moyen de charger un fichier de scripts (d'ou mon besoin de faire une boucle). - ... J'en oublie. Bref, il est bien dans le sens ou il est autonome, mais c'est tout. Merci encore.
__________________
David. |
|
|
00
|
|
|
#6 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 959 ![]() |
SQL Server CE est destiné à fonctionner essentiellement sous Windows CE c'est à dire dans des environnement mobile mono utilisateurs aux ressources très restreintes : téléphone portable par exemple.
Non seulement ce sera très limité : pas de procédures, trigger, fonctions... Mais en plus très lent, car la mémoire est "vidée" à chaque déconnexion (donc pas de cache ! A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
00
|
|
|
#7 |
|
Membre confirmé
![]() Inscription : juin 2003 Messages : 858 ![]() |
Merci pour ces informations techniques.
Du coup, je remet mes choix en question... J'ai un serveur sur lequel il y a SQL Server, et beaucoup de clients (tablettes PC Windows 7) sur lesquelles il est hors de question de faire une installation lourde. Du coup, il ne me reste qu'Access.
__________________
David. |
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() Sylvain DevidalChef de projets Générix Inscription : février 2010 Messages : 1 062 ![]() |
Mise à part qu'Access support des requêtes SQL plus complexes, vu vas vite avoir de grosses limitations aussi en termes de performance et de taille.
=> Access c'est aussi une base fichier, le moteur de base de données, c'est le drivers ODBC (la preuve, pas besoin d'avoir Access installé pour utiliser une base Access, le drivers MS Jet suffit !) A mon avis, si tu as besoin de travailler avec une base de données transactionnelle et qui monte bien la charge, tu devrais plutôt t'orienter vers : - Un serveur distant mutualisé (si ton application travaille sur un Wifi d'entreprise par exemple) - Un autre SGBDR tel que SQL Lite, qui allie légèreté (pas d'installation, peut d'occupation mémoire) et fonctionnalités (du même niveau que MySQL à peu près) |
|
|
00
|
|
|
#9 |
|
Membre confirmé
![]() Inscription : juin 2003 Messages : 858 ![]() |
Bonjour StringBuilder,
Distant, non, je ne peux pas, les tablettes vivent en autarcie et il y a une synchro régulière sur base filaire. SQL Lite, je ne connaissait pas en fait... Tu dis que c'est une base serveur et qu'il n'y a pas d'installation ? Je vais me documenter un peu... Merci.
__________________
David. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com