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

Développement SQL Server Discussion :

OPENROWSET - Excel 2013 - single-threaded apartment mode


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2005
    Messages : 36
    Par défaut OPENROWSET - Excel 2013 - single-threaded apartment mode
    Bonjour,

    Nous avons mis à jour Excel 2010 vers Excel 2013, je reçois ce message sur base d'une requête "OPENROWSET":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Msg 7308, Level 16, State 1, Line 1
    OLE DB provider 'Microsoft.ACE.OLEDB.12.0' cannot be used for distributed queries because the provider is configured to run in single-threaded apartment mode.
    La requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=C:\test2.xlsx;HDR=YES;IMEX=1', 'SELECT numFa FROM [Feuil1$]')
    Mon environnement est le suivant:
    Server : Windows server 2008 R2 (64 bits)
    SQL Server Standard Edition 2008 R2 (64 bits)
    Microsoft Office Professional Plus 2013 (32 bits)
    Microsoft Access 2013 Runtime (32 bits)

    Auparavant, ça fonctionnait avec Excel 2010 (32 bits) mais il fallait installer Microsoft Access Database Engine 2010 (64 bits).
    Pour Excel 2013, je ne trouve pas d'équivalent ... seulement Microsoft Access 2013 Runtime (32 bits) ....
    J'ai cherché sur le Net mais je trouve plus d’information sur le 2010 que pour le 2013 et toutes mes tentatives ont échouées


    Quelqu'un aurait il une idée ?

  2. #2
    Membre éclairé Avatar de Monstros Velu
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 619
    Par défaut
    J'utilise un autre driver, mais je peux lire les fichiers excel. La requete s'écrirait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * FROM OPENROWSET('MSDASQL', 'DRIVER=Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb);DefaultDir=C:\test2.xlsx' , 'SELECT * FROM [Feuil1$]')

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Février 2008
    Messages
    758
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 758
    Par défaut
    Citation Envoyé par ites Voir le message
    Mon environnement est le suivant:
    Server : Windows server 2008 R2 (64 bits)
    SQL Server Standard Edition 2008 R2 (64 bits)
    Microsoft Office Professional Plus 2013 (32 bits)
    Microsoft Access 2013 Runtime (32 bits)
    Le problème viendrait de là. Il n'y a pas de provider 64 bits pour ACE. 3 solutions possibles expliquées sur le forum US: http://social.msdn.microsoft.com/For...=sqldataaccess

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2005
    Messages : 36
    Par défaut
    Citation Envoyé par Monstros Velu Voir le message
    J'utilise un autre driver, mais je peux lire les fichiers excel. La requete s'écrirait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * FROM OPENROWSET('MSDASQL', 'DRIVER=Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb);DefaultDir=C:\test2.xlsx' , 'SELECT * FROM [Feuil1$]')
    J'ai testé ce driver et ça fonctionne .... Merci

    Quand la requête est lancée et terminée, le fichier ne peut pas être supprimer directement le système indique qu'il est ouvert par MSSQLSERVER.
    Le fichier est libéré après +/- 90 secondes, est t'il possible de clôturer la connexion après le lancement de la requête ?



    Citation Envoyé par dbaffaleuf Voir le message
    Le problème viendrait de là. Il n'y a pas de provider 64 bits pour ACE. 3 solutions possibles expliquées sur le forum US: http://social.msdn.microsoft.com/For...=sqldataaccess
    Merci pour les autres alternatives.

Discussions similaires

  1. Réponses: 1
    Dernier message: 08/11/2008, 22h46
  2. System.IO.Ports et Single-Threaded Apartment
    Par axxcat dans le forum Windows Forms
    Réponses: 7
    Dernier message: 04/06/2008, 09h01
  3. Taraitement excel dans un thread
    Par todier dans le forum C#
    Réponses: 3
    Dernier message: 12/06/2007, 13h42
  4. Pb Linker (Single-threaded / Multithreaded)
    Par olive_le_malin dans le forum MFC
    Réponses: 4
    Dernier message: 26/08/2004, 17h30

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