Bonjour,
Est ce que toutes les version de SQL SERVER peuvent utiliser le nom
".\sqlexpress" comment nom de serveur ou c'est limité à L'edition Express ?
Merci d'avance
Bonjour,
Est ce que toutes les version de SQL SERVER peuvent utiliser le nom
".\sqlexpress" comment nom de serveur ou c'est limité à L'edition Express ?
Merci d'avance
Le "nom de serveur" tel que l'on a l'habitude de dire dans une chaine de connexion est en réalité le nom du serveur et le nom de l'instance séparé par le caractère \
Ici SQLEXPRESS est le nom de l'instance, un serveur peut avoir plusieurs instances d'installées.
Le nom du serveur est ici ., c'est à dire le serveur local à la machine, sinon il faudrait mettre le nom de la machine hébergeant le serveur SQL.
Le nom de l'instance peut être omis si on souhaite accéder à l'instance par défaut (si elle est installée) du serveur. Cette instance porte le nom de MSSQLSERVER quand elle existe.
Oui je comprends mais le problème est qu'on arrive pas à connaître les nom d'instance ou des serveur disponible sur la machine d'un client.
Par exemple qu'on quelqu'un installe mon application mon application doit ajouter le nom de serveur dans la chaine de connecxion pour créer une base de données est ainsi l'exploiter.
alors comment je pourrais faire cela ?
est ce que ".\sqlexpress" peut marcher sur toutes les machine ou juste pour les machine avec l'edition sqlexpress de sql server.
".\SQLEXPRESS" ne marchera que si l'instance SQLExpress est installée sur la machine exécutant l'application.
Prévoie un fichier de configuration pour ton application, dans lequel tu viendra renseigner manuellement le nom du serveur\instance (ou la chaine de connexion complète) lorsque tu installeras l'application sur une machine.
Ensuite dans l'application, tu viendra lire ce fichier de configuration pour construire la chaine de connexion.
Pour aller plus loin tu peux aussi prévoir un écran de configuration dans ton application, qui se chargerais de créer/modifier ce fichier, si tu ne veux pas y accéder manuellement.
Tout a fait, j'ai déjà prévu l'assistant pour configurer manuellement, mais avant que l'assistant ne s'affiche j'ai crée une fonction qui configure automatiquement le serveur a utilisé en retournant les serveur existant sauf qu'elle n'a marché que sur ma machine de développement.
Pourquoi une configuration automatique ?
Parce que les personne qui vont utiliser l'application n'aurons probablement aucune expérience en informatique.(domaine pharmaceutique).
voila exemple de fonction:
importation de
Code : Sélectionner tout - Visualiser dans une fenêtre à part system.data.sql
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Dim instance As SqlDataSourceEnumerator = SqlDataSourceEnumerator.Instance Dim table As System.Data.DataTable = instance.GetDataSources() msgbox(table.Rows.Count)
la table contient les serveur dispos j'ai juste compté leur nombre
Et c'est pourquoi je cherche une autre solution pour remplacer l'ancienne.
S'il y a solution merci de le préciser.
et Merci sevyc64![]()
Tu peux effectivement récuperer la liste des serveurs\instance disponible sur le réseau et la proposer à l'utilisateur pour qu'il sélectionne l'instance qu'il souhaite utiliser.
Je ne connaissais pas cette méthode. Elle marche bien ?
Perso, j'étais passer, une fois, par les api d'odbc mais parfois certains serveurs ne sont pas remonter dans la liste.
Se que j'arrive pas à comprendre, ma méthode a marché sur la machine de développement mais pas pour les autre machine(elle me retourne aucun serveur)j'ai même installé Visuel studio sur l'une d'elle mais rien de spécial, mais je croix que j'ai un problème de référencement des dll.
Vérifie que tu ne sois pas bloqué par un parefeu.
Vérifie aussi que tes serveurs sont configurés pour accepter les connexions distantes
Vérifie aussi que le service SQLBrowser est démarré sur les serveurs, ça peut aider à les découvrir à travers le réseau
Les parefeu sont desactivés.
Pour la connexion distante pk faire ? j'utilise pas de serveur distant.
Juste une question l'instalation de mon application sur les autre machine détecte la non disponibilité de sql server et installe automatiquement SQL SERVER EXPRESS.
Est ce que cette version est compatible avec les requête envoie avec ADO.net.
Est ce qu'on peut créer des BD avec cette version en passant par ADO.net.
Car j'ai beau chercher et je n'est trouvé que ca dans le menu démarrer.
Configuration de la surface d'exposition SQL Server.
Gestionnaire de configuration SQL Server.
Et ils ont pas l'air d'avoir une interface pour exécuter des requête.
SQLServer n'a pas d'interface pour exécuter les requêtes comme tu dis. Tu fais certainement référence à SSMS (Management Studio) qui est un outils externe à SQLServer.
Dans la version "Normale", SSMS est un composant optionnel qui peut être sélectionné à l'installation de SQLServer. Dans la version Express SSMS n'est pas fourni. Il faut télécharger la version Express de SSMS sur le site de Microsoft.
Concernant les serveur distant, si celui-ci est installé sur une autre machine que celle ou est installé l'application, il est dit distant. Distant ne signifie pas sur Internet, mais simplement sur une autre machine. Si c'est le cas, le serveur doit être configuré pour accepter les connexions distantes, c'est à dire venant d'un autre machine du réseau. Et c'est par la surface d'exposition que ça se configure.
Par défaut SQLServer Express, n’accepte pas les connexions distantes. Il faut donc les activées, si tu en as besoin.
Toujours dans cette configuration de serveur distant, vérifie aussi que les protocoles TCP sont activés du coté du serveur SQL mais aussi du coté du client SQL.
Je commence à me mélangé un peu dans ta config. Tu dis ne pas utiliser de serveur distant, tu dis installer SQLServer Express sur la machine. Si c'est bien le cas, tu n'as pas besoin de partir à la découverte des serveurs disponible sur le réseau. Mais dans ce cas, les données ne seront pas partagées par plusieurs machines sur le réseau.
C'est quoi ta config exactement ?.
- Plusieurs machine avec une seule base commune à l'ensemble des machines
- Chaque machine avec sa propre base personnelle sans partage des données entre plusieurs machines.
Ma config est que Chaque machine avec sa propre base personnelle sans partage des données entre plusieurs machines.
Je croix comprendre pourquoi tu te demande pourquoi je cherche les serveur distant.
La méthode que j'ai utilisé retourne les serveur local est distant mais en fait je ne veux que les serveur local donc faut que je rectifie ma méthode.
Donc le seul problème est comment trouver le nom du serveur sur la machine hôte.
Merci d'avance
Ok.
Dans ce cas, pas besoin de cherche le serveur alors, si tu utilise obligatoirement le serveur local à la machine (Il te faudra tout de même en installer un sur la machine)
Le nom du serveur sera, au choix, le nom de la machine, le point (comme dans l'exemple que tu as donné au début) ou localhost.
Concernant le nom de l'instance, tout dépend de ce que tu installe. Si tu installe SQLExpress sur la machine, le nom de l'instance sera obligatoirement SQLExpress.
Si tu installe une version "normale" de SQLServer, sur l'instance par défaut, le nom sera MSSQLSERVER, mais dans ce acs tu peux ne pas mettre le nom de l'instance dans la chaine de connexion, sinon, si tu installe sur une instance nommée, ce sera ce nom là qu'il faudra utiliser.
Donc pour résumer, si tu es certain d'utiliser systématiquement une instance de SQLServer Express en local sur la machine, le "nom de serveur" à mettre dans la chaine de connexion pourra être ".\SQEXPRESS", et ce sans que tu ais besoin d'en faire une recherche.
Mais je maintient quand même mon conseil de mettre ce nom de serveur, ou la chaine de connexion complète dans un fichier de configuration.
Comme ça, si au cours de la vie de ton application, tu viens à vouloir changer de serveur, ou centraliser les données, tu n'as pas besoin de modifier ton appli, juste changer la chaine de connexion dans le fichier
Oui j'ai prévu cela, sauf que je met pas toute la chaine dans un fichier mais seulement le nom du serveur utilisé dans le registre (j'essaye de cacher le plus se qui poser des problème de configuration).
donc si je résume se que vous venez de me dire :
Pour la version express de SQL Server j'utilise (. ou localhost ou nom machine) suivie obligatoirement de L'instance "SQLEXPRESS"
Sinon ,pour une version normal, le nom de l'instance peut être ignoré s'il s'agit de l'instance par défaut, ou bien obligatoire s'il s'agit d'une instance nommée.
Une autre question, Est ce qu'il est possible de détecter la version installé du produit SQL SERVER ?
Merci d'avance
(On parle plutôt ici d'édition, la version serait plutôt 2000, 2005, 2008, ...)
C'est probablement possible, mais je en sais pas comment, à part vérifier le nom.
Bien qu'il soit possible de la nommer autrement, une instance SqlServer Express sera généralement nommé SQLExpress. Bon nombres de logiciels en tout cas l'attende sous ce nom là.
Complexe, non. Tout dépend ce que tu veux gérer.
Si tu veux accéder à des infos ou des spécificités du serveur, oui, il va falloir gérer les versions et éventuellement les éditions.
Si tu te contente de vouloir accéder uniquement aux bases de données hébergées, la chaine de connexion est identique, que tu sois en SqlServer 2000, 2005, 2008 ou 2008R2
Pour les éditions, les différences portent plus sur la gestion du serveur et des bases, et sont généralement transparente au niveau utilisateur.
J'exclue de ce schéma SQLServer Compact Edition, qui n'est pas une édition de SQLServer (comme SQLExpress) mais bien un SGBD différent et totalement indépendant, dont le nom de "SQLServer" prête à une très grande confusion pour beaucoup de monde.
Retrouvez moi sur :
Mon Espace Developpez.com-------------------------------
Dvp.NET, une librairie open-source de composants .NET
Mon blog: Up there in the code----------------------------
Twitter: NatMarchand
Ma société: So@t
Showrizo : Suivez votre planning de séries télé sous Windows 8
Tu trouveras tout ce qu'il te faut sur ce site --> http://www.connectionstrings.com/default.aspx
Partager