none
Fichier base de données RRS feed

  • Question

  • Bonjour tout le monde,

    Les ateliers du coach Microsoft sont fournis avec des fichiers de bases de données d'extension MDF.

    Quand j'ai voulu reprendre tout-à-l'heure quelque chose que j'ai fait au début de l'année, je me suis aperçu que je ne pouvais pas ouvrir les fichiers MDF.

    SSMS installé avec Sql Express 2008 R2 s'ouvre sans problème, mais ne reconnaît pas les fichiers MDF. Sous Windows, après un double-clic là-dessus, m'est proposé de trouver sur Internet le programme nécessaire, mauvaise idée : ça me propose Alcohol 52%, un programme de gestion de CD musicaux, donc le rapport avec la question n'est pas évident. Une heure pour installer, deux minutes pour tester, une heure pour désinstaller, une demi-heure pour corriger les problèmes de registre.

    Récemment j'ai créé un nouvel administrateur, car l'ancien ne réussissait plus à ouvrir Visual Web Developer Express 2010 et Visual C# Express 2010. J'ai accordé le droit sysadmin sur SQL Express à ce nouvel administrateur, ce qui lui permet de travailler avec les bases se trouvant dans le serveur SQL Express. En revanche, pour ce qui est des fichiers MDF, le message qui s'affiche laisse entendre que le pilote requis n'est pas installé.

    Je peux réinstaller SQL Express 2008 R2, je crois juste me rappeler que ça prend un certain temps. Est-ce que je peux m'attendre à ce que ça résolve le problème ?

    lundi 7 octobre 2013 13:01

Toutes les réponses

  • Pour ajouter votre base de données dans le moteur SQL, il faut attacher votre fichier MDF.

    Clic droit sur DataBases (dans SQL Management) puis Attach.


    Richard Clark
    Consultant - Formateur .NET
    http://www.c2i.fr
    Depuis 1996: le 1er site .NET francophone

    lundi 7 octobre 2013 14:22
  • Bonjour,

    Avez-vous testé la solution proposée ?

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0

    lundi 7 octobre 2013 18:21
    Modérateur
  • Pour ajouter votre base de données dans le moteur SQL, il faut attacher votre fichier MDF.

    Clic droit sur DataBases (dans SQL Management) puis Attach.


    Effectivement ça aide bien, merci. J'en avais pourtant quelques-unes d'attachées comme ça, mais on dirait que le souvenir s'en est un peu flouté cet après-midi ...

    Pour ce qui est de créer une connexion dans l'explorateur de serveurs (ou de bases de données) de Visual Studio, j'ai aussi manqué d'efficacité dans la façon de poser la question, puisque j'ai horriblement déformé le message d'erreur : "Failed to generate a user instance of SQL Server due to a failure in copying database files. The connection will be closed".

    Du coup je mets une copie d'écran, ça risque moins de déraper.


    copie d'écran message d'erreur
    • Modifié Gloops lundi 7 octobre 2013 19:19
    lundi 7 octobre 2013 19:02
  • Bonjour,

    Avez-vous testé la solution proposée ?

    Cordialement

    Je reconnais qu'attacher le fichier c'est dommage de ne pas y avoir pensé et du coup il vaut autant éviter de laisser traîner, mais j'ai dû m'absenter cet après-midi. Pour préparer une autre absence, demain matin.


    lundi 7 octobre 2013 19:09
  • Du fait de mon approche hésitante (un peu de mal à assumer les ruptures de rythme dernièrement ...) il faut que me méfie des assertions implicites.

    Avec une connexion de type Microsoft SQL Server (SQL Client), j'ai pu sans problème établir une connexion sur la base que j'ai préalablement attachée depuis SSMS.

    En revanche, c'est la connexion de type "Fichier de base de données Microsoft SQL Server" (donc directement sur le fichier sans passer par une attache depuis le serveur) qui génère le message d'erreur.

    J'ai déjà établi ce type de connexion par le passé, mais là ça n'a pas l'air de vouloir.

    Contrairement à ce que je disais dans mon premier message le pilote est présent puisque l'intitulé correspondant est proposé, mais il ne réussit pas à fonctionner.

    Je m'attends à ce que l'acuité du problème d'interface chaise-clavier (dont je n'ai pris conscience qu'après avoir posé la question) diminue au cours de la journée de Mercredi. Peut-être la réponse sera-t-elle alors évidente.

    lundi 7 octobre 2013 19:36
  • Bonjour,

    Supprimer le répertoire "C:\Users\<Utilisateur>\AppData\Local\Microsoft\Microsoft SQL Server Data" et redémarrer votre Visual Studio

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0

    lundi 7 octobre 2013 19:55
    Modérateur
  • Bonjour,

    Supprimer le répertoire "C:\Users\<Utilisateur>\AppData\Local\Microsoft\Microsoft SQL Server Data" et redémarrer votre Visual Studio

    Là-dedans ?

    > CD C:\Users

    > Tree

    C:.
    └───Default
        └───Favorites
            └───HP

    lundi 7 octobre 2013 20:02
  • Bonjour,

    Affichez les dossiers cachés...

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0

    lundi 7 octobre 2013 20:06
    Modérateur
  • Les fichiers et répertoires cachés sont affichés.

    Dans la session adm c'est récent mais l'affichage ci-dessus est obtenu depuis la session de l'utilisateur limité, qui a les fichiers cachés affichés depuis la première quinzaine que j'ai la machine (bien sûr je viens de vérifier).

    J'ai aussi décoché "Masquer les extensions des fichiers dont le type est connu" et "masquer les fichiers protégés du système d'exploitation" -ce qui est moins en rapport avec la question, mais lié à une plus grande visibilité dans l'explorateur.

    Au demeurant la commande Tree a été lancée depuis une fenêtre de lignes de commandes.

    Je viens d'ouvrir une fenêtre d'explorateur avec le profil administrateur, pour vérifier si une question de droits n'expliquerait pas l'invisibilité de certains répertoires. Je n'en vois pas d'autres.

    • Modifié Gloops lundi 7 octobre 2013 20:22 explorateur en adm
    lundi 7 octobre 2013 20:14
  • Bonjour,

    Ce n'est pas le répertoire "C:\Users\Default" qu'il faut regarder, mais le répertoire de votre compte utilisateur. Par exemple : "C:\Users\Jean-Marcel DUCHEMIN"

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0

    lundi 7 octobre 2013 20:43
    Modérateur
  • Ah oui mais ce que j'ai affiché ci-dessus c'est l'intégralité du contenu du répertoire C:\Users (à part un raccourci dans le répertoire HP).

    Je serais bien tenté de proposer de le créer, mais initialement il était plutôt question de supprimer quelque chose, dedans ?

    Bon, en filigrane ... l'absence de ce répertoire laisserait-elle supposer que SQL Express a besoin d'être réinstallé ?

    lundi 7 octobre 2013 20:48
  • Tilt, idée ...

    J'ai complètement oublié de préciser mon système d'exploitation, c'est Windows XP SP3 familial.

    C:\>tree "C:\Documents and Settings\adm\Application Data\Microsoft\Microsoft SQL
     Server" /F

    C:\DOCUMENTS AND SETTINGS\ADM\APPLICATION DATA\MICROSOFT\MICROSOFT SQL SERVER
    └───100
        └───Tools
            └───Shell
                │   backup_windows.prf
                │   Current.vsk
                │   RegSrvr.xml
                │   SqlStudio.bin
                │   VsFontLk.dat
                │   windows.prf
                │   windowsidx.prf
                │
                ├───1033
                │       CmdUI.PRF
                │
                ├───Aliases
                │   └───1033
                │           aliases.ini
                │           defaultaliases.ini
                │
                ├───AutoRecoverDat
                └───vs help data
                        Favorites.xml
                        Settings.xml

    • Modifié Gloops lundi 7 octobre 2013 21:04
    lundi 7 octobre 2013 20:57
  • Bonjour,

    Pour être sur :

    Saisissez le chemin suivant dans l'explorateur de Windows : %LOCALAPPDATA%\Microsoft\Microsoft SQL Server Data\

    Et supprimer tout ce qui s'y trouve.

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0

    lundi 7 octobre 2013 23:37
    Modérateur
  • Bonjour,

    Pour être sur :

    Saisissez le chemin suivant dans l'explorateur de Windows : %LOCALAPPDATA%\Microsoft\Microsoft SQL Server Data\

    Et supprimer tout ce qui s'y trouve.

    Je suis obligé d'adapter :

    - dans l'environnement je n'ai pas de LOCALAPPDATA, mais j'ai un APPDATA, qui vaut  C:\Documents and Settings\%USERNAME%\Application Data

    - là dedans le répertoire Microsoft contient un sous-répertoire Microsoft SQL Server, mais pas Microsoft SQL Server Data

    Ce qui fait que pour adm ça donne :

    C:\Documents and Settings\adm\Application Data\Microsoft\Microsoft SQL Server

    dont j'ai indiqué le contenu tout-à-l'heure.

    Donc je supprime le sous-répertoire 100 ?

    lundi 7 octobre 2013 23:56
  • C'est même mieux que ça : l'utilisateur limité a un APPDATA, mais le nouvel administrateur non. Le chemin que j'ai construit est celui que j'aurais obtenu en construisant APPDATA sur la même règle que pour l'utilisateur limité.

    ça fait une phrase longue, mais si je ne suis pas mélangé les pinceaux ça devrait avoir un sens ...

    mardi 8 octobre 2013 00:07
  • Avec quel utilisateur est démarrée le Service Sql ?

    Vous pouvez vérifier dans les WIN+R, Services.msc – MS SQL,  Click Droit/propriétés/ Log-In.

    Changez l’utilisateur à un Local System.

    Cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    mercredi 9 octobre 2013 09:58
  • Avec quel utilisateur est démarrée le Service Sql ?

    Vous pouvez vérifier dans les WIN+R, Services.msc – MS SQL,  Click Droit/propriétés/ Log-In.

    Changez l’utilisateur à un Local System.

    Bonjour,

    Question fort judicieuse : il était démarré avec le profil de l'ancien administrateur, qui a toujours le droit sysadmin sur le serveur SQL Express, mais n'est plus administrateur du système.

    Pour un compte Local System, est-ce qu'il faut un mot de passe ?

    En attendant j'ai mis le nouvel administrateur, dont je connais le mot de passe, et redémarré le service.

    Hélas j'ai toujours le même message d'erreur.

    mercredi 9 octobre 2013 20:01
  • Bonjour

    Vérifiez svp si l’utilisateur et l’administrateur utilisé pour démarrer le service SQL ont tous les  droits dans le répertoire C:\Documents and Settings\adm\Application Data\Microsoft\Microsoft SQL Server.

    Essayez aussi de créer à main le chemin comme Gilles vous a indiquée.

    Cordialement, 
     


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    jeudi 10 octobre 2013 06:31
  • Bonjour

    Vérifiez svp si l’utilisateur et l’administrateur utilisé pour démarrer le service SQL ont tous les  droits dans le répertoire C:\Documents and Settings\adm\Application Data\Microsoft\Microsoft SQL Server.

    Essayez aussi de créer à main le chemin comme Gilles vous a indiquée.

    Bonjour,

    J'ai vérifié, l'utilisateur adm a le droit Full Control sur ce répertoire, et c'est valable aussi pour les autres administrateurs du système.

    J'ai vérifié pour tous les niveaux jusqu'à C:\Documents and Settings\adm\Application Data\Microsoft\Microsoft SQL Server\100\Tools\Shell\1033

    Pour le dernier test au début de la semaine j'ai démarré Visual Web Developer Express 2010 en empruntant l'identité adm par la commande "runas". Dans Sql Express, adm a le droit sysadmin.

    Gilles a indiqué des chemins intitulés de façon un peu différente, car j'ai tardé à préciser mon système d'exploitation. Aussi, à chaque fois j'ai demandé de confirmer si le chemin indiqué devait être pris au "pied de la lettre", ou si l'adaptation que j'en trouvais sur ma machine était recevable.

    Est-ce que le chemin sur lequel je viens de vérifier les droits (tel qu'indiqué ci-dessus) est le bon, ou faut-il que j'en crée aussi un autre ? Par exemple, en partant du principe que "C:\Users" concerne plutôt des versions plus récentes de Windows (j'utilise XP), fais-je erreur ?



    • Modifié Gloops vendredi 11 octobre 2013 10:02
    vendredi 11 octobre 2013 09:49
  • J'ai refait le test et j'ai toujours le même message d'erreur.

    L'autre jour j'avais juste redémarré le service comme l'indiquait le message, mais cette fois Windows a été redémarré depuis que l'utilisateur démarrant le service a été changé.

    vendredi 11 octobre 2013 09:55
  • Quelques observations faites depuis tout-à-l'heure.

    Il existe bien un répertoire Microsoft SQL Server Data, mais il est dans Local Settings. L'idée d'aller voir là m'est venue de là.

    J'ai renommé le sous-répertoire qu'il y avait dedans, redémarré Visual Web Developer, pas de changement visible.

    Avant j'étais allé faire un test dans une session adm, pour le cas où la délégation d'identité poserait problème. Le test n'a pas été concluant.

    J'ai aussi effectué l'étape 1 qui est mentionnée dans la page liée ci-dessus, il m'a été répondu "Configuration option 'user instances enabled' changed from 1 to 1.", je ne m'attends donc pas à un changement spectaculaire de ce fait. Ce n'est pas étonnant : la procédure était déjà utilisée depuis longtemps, c'est juste un nouvel utilisateur qui a été créé.

    Dans la boîte de dialogue "Browse for Servers", pour ouvrir une connection à l'ouverture de SSMS, dans l'onglet Local Servers, sous le noeud Database Engine, je vois un sous-noeud avec le nom de la machine suivi de \SQLEXPRESS. En sélectionnant ça j'active le bouton OK.
    Après Database Engine, je vois un autre noeud au même niveau, intitulé "SQL Server Compact Databases". En sélectionnant ce noeud, le bouton OK est désactivé.

    Au total, la seule manière dont je réussisse dans Visual Web Developer à ouvrir un fichier de base de données sans l'appeler depuis une attache dans le serveur, passe par cliquer sur "Avancées" dans les propriétés de la connexion en cours de création, et en face de "User Instance", sélectionner "False". J'avoue que je ne me représente pas bien l'impact de cette façon de procéder.



    • Modifié Gloops vendredi 11 octobre 2013 12:19
    vendredi 11 octobre 2013 12:02
  • Oups, j'ai laissé passer un truc. Dans la copie d'écran que j'ai fournie plus haut, il était question d'une "failure in copying database files".

    A présent, le message est devenu "Failed to generate a user instance of SQL Server due to a failure in starting the process for the user instance."

    De copier des fichiers, la difficulté est devenue d'ouvrir un processus.

    Il est donc permis de penser qu'une partie des erreurs a été corrigée, sinon le message n'aurait pas changé.

    vendredi 11 octobre 2013 12:18
  • Pour plus de clarté, j'ai redémarré Windows et ouvert une session adm.

    Peut-être ai-je parlé trop vite tout-à-l'heure, car le message d'erreur fait à nouveau allusion à une "failure in copying database files".

    Il me reste toujours la ressource de mettre à False le paramètre "User Instance" de la connexion.

    vendredi 11 octobre 2013 13:28