Droit d'accès [Résolu]

Signaler
Messages postés
540
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
1 février 2013
-
Messages postés
540
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
1 février 2013
-
ICONIC FIGURE

Bonjour à tous!!
j'aimerais extraire des données d'une base de donnée à partir d'une requête sql de type 'select' et de mettre le résultat dans un fichier xml...
voici le code que j'ai utilisé:
    Private strConn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
       "C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\Visualbasic.mdf;"

   Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        'Connect to the data source.

        Dim objConn As New System.Data.OleDb.OleDbConnection(strConn)
        Try
            objConn.Open()
            'Fill the dataset with records from the Customers table.
            Dim strSQL As String
            Dim objDataset As New DataSet
            Dim objAdapter As New System.Data.OleDb.OleDbDataAdapter
            'The OLEDbDataAdapter acts as a bridge between the data source,
            'in this case the Customers table, and the dataset.
            strSQL = "Select Nom from Basic"
            objAdapter.SelectCommand = New System.Data.OleDb.OleDbCommand( _
            strSQL, objConn)
            objAdapter.Fill(objDataset)

            'Create the FileStream to write with.
            Dim strFilename As String
            strFilename = "D:\Nazomeka.xml"
            Dim fs As New System.IO.FileStream(strFilename, _
            System.IO.FileMode.Create)

            'Create an XmlTextWriter for the FileStream.
            Dim xtw As New System.Xml.XmlTextWriter(fs, _
            System.Text.Encoding.Unicode)

            'Add the processing instruction to the beginning of the XML
            ' file, leaving the one which indicates a style sheet commented.
            xtw.WriteProcessingInstruction("xml", "version='1.0'")
            'xtw.WriteProcessingInstruction( _
            '"xml-stylesheet", "type='text/xsl' href='customers.xsl'")

            'Write the XML from the dataset to the file.
            objDataset.WriteXml(xtw)
            xtw.Close()

            MsgBox("Customer data has been exported to D:\Nazomeka.xml.")
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.Information, "Erreur")
        End Try
     
    End Sub


mais j'ai constamment le message qui dit:
"le moteur de base de donnée Microsoft Jet ne peut pas ouvrir le fichier "C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\Visualbasic.mdf" car il est peut-être ouvert en mode exclusif par un autre utilisateur ou vous devez avoir l'autorisation de visualiser les données"
je sais pas trop comment y remédier.
je travaille sous Windows7 et Visual Studio Team System 2008
Merci d'avance pour vos suggestions!!

5 réponses

Messages postés
420
Date d'inscription
vendredi 17 novembre 2006
Statut
Membre
Dernière intervention
15 juillet 2014
5
Bonjour,

Je pense que votre problème vient du fait que vous tentez d'accéder à une base de données SQL Server par son fichier .mdf alors que le moteur SQL doit être démarré. (Voir service SQL Server)

Pour accéder à une base de données SQL Server il sera préférable de passer par son moteur à l'aide d'une chaine de connection du style
"Data Source=MAMACHINE\SQLEXPRESS;Initial Catalog=Visualbasic;User Id=myUsername;Password=myPassword;"

Deuxième remarque :

Pourquoi utiliser la collection d'objet OleDb alors que vous avez à votre disposition une collection d'objets spécifique SQL Server (SQLConnection, SQLCommand ....)
Messages postés
540
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
1 février 2013
1
ICONIC FIGURE

Merci pour les remarques constructives mais j'ai de nouveau une exception disant:
"Le serveur est introuvable ou pas accessible.Vérifiez que le nom d'instance est correct et que sqlserver est configuré pour accepter des connexions distantes"
je suis un peu perdu surtout que le nom du serveur est bien renseigné...
Messages postés
453
Date d'inscription
dimanche 20 août 2006
Statut
Membre
Dernière intervention
11 janvier 2013
10
Rien a voir avec le code mais:
La station avec laquel tu te connect au serveur et autorisé ex login:passe de ta session windows. si tu fais partis d'un domain activedirectory il faut absolument que ta session soit autorisé sinon tu ne pourras pas.
Messages postés
540
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
1 février 2013
1
ICONIC FIGURE

j'ai pas trop saisi ce que tu veux dire,rien compris
Messages postés
540
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
1 février 2013
1
ICONIC FIGURE

Merci à foliv57,Scromania!!
Le problème provenait d'un manque de ";" dans la chaîne de connexion...
la chaîne est donc:
 Private strConn As String = "Data Source=ICONIC_D-PC\SQLEXPRESS;" & _
       "Initial Catalog=Visualbasic;Trusted_Connection=True;"