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

Accès aux données Discussion :

[ADO.Net 2] Comment utiliser une procedure stockée qui lit un fichier Excel ?


Sujet :

Accès aux données

  1. #1
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 55
    Points : 43
    Points
    43
    Par défaut [ADO.Net 2] Comment utiliser une procedure stockée qui lit un fichier Excel ?
    Bonjour,

    J'utilise présentement SQL Server 2005 avec ASP.NET 2.0. J'aimerais pouvoir lire les données à partir d'un fichier Excel et les insérer dans ma base de données en passant par ASP.NET.

    Tout d'abord, je me suis fait une procédure stockée dans SQL Server (avec OPENROWSET) pour lire le fichier Excel. Elle fonctionne très bien si je l'utilise directement dans SQL Server.

    Cependant, si je l'appelle dans mon application ASP.Net, il me fait l'erreur 7415 et ceci semble concerner un Linked Server. Je ne suis pas trop sûr de ce qu'est un Linked Server, mais OPENROWSET n'est-il pas supposé faire un Linked Server à notre place ?

    Merci,

    Évans

  2. #2
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 55
    Points : 43
    Points
    43
    Par défaut
    Bonjour,

    J'ai réussi à me créer un Linked Server en passant par une procédure stockée (car j'ai besoin d'un datasource dynamique en ce sens que l'utilisateur upload un fichier Excel sur le serveur).

    Voici le code :
    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
    CREATE PROCEDURE pCreerServeurExcel (
    @Chemin nvarchar(1000),
    @NomServ nvarchar(100) output)
    WITH ENCRYPTION
    AS
    SET NOCOUNT OFF 
    BEGIN TRY
     
    -- On drop le server s'il existe
    IF EXISTS (SELECT srvname FROM master.dbo.sysservers srv WHERE srv.srvid != 
    0 AND srv.srvname = N'ExcelSource') 
    EXEC master.dbo.sp_dropserver @server=N'ExcelSource', @droplogins='droplogins' 
     
    -- On créé le server
    EXEC sp_addlinkedserver 
    @server = 'ExcelSource',
    @srvproduct = 'Excel',
    @provider = 'Microsoft.Jet.OLEDB.4.0',
    @datasrc = @Chemin,
    @provstr = 'Excel 8.0';
     
    -- On se connected sur le linked server
    EXEC sp_addlinkedsrvlogin N'ExcelSource', false, N's2006', N's2006', N's2006.123'
    set @NomServ = 'ExcelSource';
     
    END TRY
    Cependant, lorsque je veux créer ma procédure qui me permet de lire le fichier Excel, il me fait l'erreur suivante :
    OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "ExcelSource" returned 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.".
    Msg 7399, Level 16, State 1, Procedure LectureExcel, Line 39
    The OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "ExcelSource" reported an error. Authentication failed.
    Msg 7303, Level 16, State 1, Procedure LectureExcel, Line 39
    Cannot initialize the data source object of OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "ExcelSource".
    Pourtant, j'ai bel et bien un login nommé "s2006" avec le mot de passe "s2006.123". J'ai même tenté avec "sa" mais ceci n'a rien changé.

    Merci,

    Évans

  3. #3
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 55
    Points : 43
    Points
    43
    Par défaut
    Bonjour,

    J'ai finalement réussi à faire fonctionner le serveur lié avec mon fichier Excel !!

    Maintenant, je suis capable d'appeler ma procédure à partir de mon application en ASP.NET.

    Il s'agissait en fait de créer le serveur comme suit :

    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
    -- On crée le server
    EXEC sp_addlinkedserver 
    @server ='ExcelSource',
    @srvproduct ='Excel',
    @provider ='Microsoft.Jet.OLEDB.4.0',
    @datasrc = @Chemin,
    @provstr ='Excel 8.0';
    -- On se connecte sur le serveur lié
    EXEC sp_addlinkedsrvlogin 
    @rmtsrvname ='ExcelSource',
    @useself = false,
    @locallogin =NULL,
    @rmtuser ='ADMIN',
    @rmtpassword =NULL;
    set @NomServ ='ExcelSource';
    
    Et voilà,

    Évans

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [CR XI] Comment utiliser une procedure stockée oracle avec crystal report XI
    Par saidms dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 03/01/2011, 09h28
  2. [ADO.Net][C#]Comment coder une transaction de SqlDA.Update?
    Par subzero82 dans le forum Accès aux données
    Réponses: 5
    Dernier message: 12/02/2007, 14h23
  3. [ADO.Net][C#] Comment utiliser Mysql ?
    Par soltani.slim dans le forum Accès aux données
    Réponses: 13
    Dernier message: 31/08/2006, 12h57
  4. [ADO.NET][C#] Comment copier une DataRow d'une DataTable à une autre ?
    Par L`artiste dans le forum Accès aux données
    Réponses: 3
    Dernier message: 29/04/2006, 00h11
  5. Réponses: 3
    Dernier message: 26/01/2006, 10h55

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