IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

SQL SERVER Insert fichier information groupe travail absent ou ouvert en mode exclusi


Sujet :

MS SQL Server

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2008
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 30
    Points : 13
    Points
    13
    Par défaut SQL SERVER Insert fichier information groupe travail absent ou ouvert en mode exclusi
    Bonjour à tous,

    J'essaye d'exécuter à partir d'un programme VB Excel une procédure stockée SQL SERVER. J'ai déjà eu pas mal de problèmes parce que je n'avais pas les droits suffisants sur la base "master", puis dans les rôles du serveur.

    Maintenant, cela bloque sur l'instruction INSERT. Pourtant, je me suis mis tous les droits possibles (enfin il en manque forcément un...).

    J'ai le message d'erreur suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    le fournisseur OLE DB Microsoft Jet OLEDB du serveur lié a retourné le message Impossible de démarrer votre application. Le fichier d'informations du groupe de travail est absent ou ouvert en mode exclusif par un autre utilisateur
    J'espère que vous pourrez m'aider, je bloque là-dessus depuis plusieurs jours sans m'en sortir.

  2. #2
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Bonsoir,

    Pourriez vous nous donner la chaine de connexion utilisée pour vous connecter à SQL Server ?

    ++

  3. #3
    Membre à l'essai
    Inscrit en
    Septembre 2008
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 30
    Points : 13
    Points
    13
    Par défaut
    Bonjour Mikedavem et merci de m'aider

    La chaine de connexion que j'utilise dans mon programme VB Excel est la suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Public cN As ADODB.Connection
    Public Sub conNect()
        Set cN = New ADODB.Connection
        dbPath = Path
        cN.ConnectionString = "Provider=SQLOLEDB;Data Source=SERVEUR_TEST;Initial Catalog=BD_TEST; User ID=usertest;Password=mdptest;"
        cN.Open
    End Sub

  4. #4
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Vous n'avez pas créer un serveur lié des fois pour vous connecter à votre base ?

    Si oui pouvez nous dire comment avez vous créer ce serveur lié ? (sp_addlinkedserver, sp_addlinkedsrvlogin)

    ++

  5. #5
    Membre à l'essai
    Inscrit en
    Septembre 2008
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 30
    Points : 13
    Points
    13
    Par défaut
    Oui je crée un serveur lié dans ma procédure sql:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    CREATE procedure [dbo].[PS_TEST]
     
    AS
     
    -- Déclaration de variables
    DECLARE @Excel_conso_tel_liste_fichiers VARCHAR(30)
     
    -- RECUPERATION DE LA LISTE DES FICHIERS A IMPORTER
     
    -- Déclaration du lien vers le fichier !ExportSql
    SET @Excel_conso_tel_liste_fichiers='Excel_conso_tel_liste_fichiers'
     
    -- Instruction supprimant le lien vers Excel s'il existe déjà 
    if (select count(*) from master.dbo.sysservers where srvname=@Excel_conso_tel_liste_fichiers)>0
    	Exec sp_dropserver @Excel_conso_tel_liste_fichiers,'droplogins'
     
    -- Déclaration du lien avec Excel
    Exec sp_addlinkedserver @Excel_conso_tel_liste_fichiers,
    	'Jet 4.0',
    	'Microsoft.Jet.OLEDB.4.0',
    	'\\NOM_SERVEYR\Rep\!ExportSql.xls',
    	Null,
    	'Excel 4.0'
     
    -- Vidage de la table WK_LISTE_FICHIERS
    TRUNCATE TABLE WK_LISTE_FICHIERS
     
    -- Récupération de la liste des fichiers à importer
    INSERT INTO WK_LISTE_FICHIERS
    		   ([chemin_fichier]
    		   ,[annee]
    		   ,[mois]
    		   ,[export_sql]
    		   ,[etat_export_sql]  )
    	 SELECT
    		[chemin_fichier]
    		   ,[annee]
    		   ,[mois]
    		   ,[export_sql]
    		   ,[etat_export_sql]
    FROM Excel_conso_tel_liste_fichiers...LISTE_FICHIERS
    Si je l'exécute dans SQL SERVER, pas de problème.
    Si je l'exécute dans EXCEL: Si je met en commentaire tout ce qui est après le INSERT INTO, la procédure s'exécute, sinon elle plante.

  6. #6
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Je ne vois pas dans votre procédure l'exécution de sp_addlinkedsrvlogin

    Avez vous mappé votre utilisateur userTest à un utilisateur ayant accès à votre fichier Excel (un compte windows) ?

    ++

  7. #7
    Membre à l'essai
    Inscrit en
    Septembre 2008
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 30
    Points : 13
    Points
    13
    Par défaut
    Bonjour Mikedavem,

    Ma procédure d'exécution de sp_addlinkedsrvlogin est la suivante: (enfin, j'utilise sp_addlinkedserver et non sp_addlinkedsrvlogin, je ne sais pas si ça change quelquechose)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Exec sp_addlinkedserver @Excel_conso_tel_liste_fichiers,
    	'Jet 4.0',
    	'Microsoft.Jet.OLEDB.4.0',
    	'\\NOM_SERVEYR\Rep\!ExportSql.xls',
    	NULL,
    	'Excel 5.0'

    Pour me connecter à la base de données, j'ai testé deux users qui ont les accès suivants:
    *** sur la base de données concernée:
    - db_accessadmin
    - db_backupoperateur
    - db_datareader
    - db_datawriter
    - db_ddladmin
    - db_owner
    - db_securityadmin
    - public

    *** en rôles du serveur:
    - bulkadmin
    - dbcreator
    - diskadmin
    - processadmin
    - securityadmin
    - serveradmin
    - setupadmin
    - sysadmin
    et ces user ont également tous les droits sur le fichier Excel. Aucun des users n'est administrateur du serveur où se trouve la base SQL SERVER, par contre le user A peut y accéder à distance et est administrateur du poste (pas du réseau).
    Que je me connecte à Windows avec le user A ou B (tout en changeant les identifiants de connexion à la BD), j'ai le même problème.

  8. #8
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Bonjour,

    La procédure sp_addlinkedserver vous sert à créer votre serveur lié.
    La procédure sp_addlinkedsrvlogin vous sert à paramétrer la sécurité au travers votre serveur lié.

    Rajouter ceci dans votre procédure et dites nous si cela fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Exec sp_addlinkedserver @Excel_conso_tel_liste_fichiers,
    	N'Jet 4.0',
    	N'Microsoft.Jet.OLEDB.4.0',
    	N'\\NOM_SERVEYR\Rep\!ExportSql.xls',
    	NULL,
    	N'Excel 5.0'
    
    -- Paramètrage de connexion sans utiliser de contexte de sécurité
    Exec sp_addlinkedsrvlogin @Excel_conso_tel_liste_fichiers,
                 N'False',
                 NULL,
                 NULL,
                 NULL
    ++

  9. #9
    Membre à l'essai
    Inscrit en
    Septembre 2008
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 30
    Points : 13
    Points
    13
    Par défaut
    Ok, je ne connaissais pas cette notion de sp_addlinkedsrvlogin.

    J'ai ajouté le code proposé. Quand j'exécute la procédure stockée sous SQL SERVER, toujours pas de problème. Mais sous Excel, j'ai un message d'erreur différent:
    Le fournisseur OLE DB Microsoft.Jet.OLEDB.4.0 du serveur lié 'Excel_conso_tel_liste_fichiers' a rapporté une erreur. Le fournisseur n'a donné aucune information quand à cette erreur.

  10. #10
    Membre à l'essai
    Inscrit en
    Septembre 2008
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 30
    Points : 13
    Points
    13
    Par défaut
    Bonjour à tous,

    je suis toujours bloquée!
    Super les sécurités SQL SERVER! Ils bloquent tellement qu'on est bloqués même quand on a les droits nécessaires...

    s'il vous plait, aidez-moi, je suis vraiment bloquée depuis 1 mois maintenant, et je n'ai plus qu'à jeter mes journées de boulot sur ce développement si je n'arrive pas à résoudre ce problème.

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Pb LinkServer fichier xls
    Bonjour,
    J'ai presque le même PB que toi (LaDebrouille)...
    J'arrive a utilisé mon LinkServer si le fichier xls qu'il utilise est sur le meme serveur que mon sql-server. Par contre si le fichier xls de mon link server est sur un autre serveur que mon sql-server j'ai un message d'erreur. Peux tu me dire si tu as le m^me PB ?

Discussions similaires

  1. [SQL Server 2000] : fichier de sortie "horodaté" (travail)
    Par parker13 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 10/11/2009, 18h38
  2. [SQL Server] Insert - imposer un identifiant
    Par liliprog dans le forum Langage SQL
    Réponses: 9
    Dernier message: 16/03/2006, 10h01
  3. [vb.net][Access][deb] fichier info groupe travail est absent
    Par Manix dans le forum Windows Forms
    Réponses: 9
    Dernier message: 28/07/2005, 11h19
  4. Réponses: 9
    Dernier message: 17/03/2005, 09h20
  5. [C#][SQL Server] Insertion de données inversées
    Par lamiae18 dans le forum ASP.NET
    Réponses: 7
    Dernier message: 20/04/2004, 16h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo