none
Probleme avec OPENROWSET RRS feed

  • Question

  • Bonjour,

    J'ai un petit probleme avec OPENROWSET que j'utilise pour exporter des données de la base vers un fichier excel.
    Lorsque je l'utilise de cette façon :

    Code Snippet

    INSERT INTO OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=C:\Temp\test.xls;','SELECT evt_num FROM [Sheet1$]')
    SELECT evt_num FROM evt


    Tout se passe très bien.
    Par contre si j'essaie quelquechose du genre :

    Code Snippet

    DECLARE @sql1 nvarchar(600)
    SET @sql1 = 'SELECT evt_num FROM evt'
    INSERT INTO OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=C:\Temp\test.xls;','SELECT evt_num FROM [Sheet1$]')
    EXEC(@sql1)


    Et bien là ca ne passe plus, il me renvoie l'erreur suivante :

    The requested operation could not be performed because OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "(null)" does not support the required transaction interface.

    Le but étant biensur d'avoir une requete dynamique pour remplir mon fichier excel.

    Est ce que quelqu'un voit d'où peut venir l'erreur ?

    Merci d'avance
    a+
    lundi 25 février 2008 10:57

Réponses

  • Essayez

     

    Code Snippet

    DECLARE @sql1 nvarchar(800)

    SET @sql1 = 'SELECT evt_num FROM evt'

    SET @sql1 =

    '

    INSERT INTO OPENROWSET(''Microsoft.Jet.OLEDB.4.0'',''Excel 8.0;Database=C:\temp\test.xls;'',''SELECT evt_num FROM [Sheet1$]'')

    '

    + @sql1

     

    EXEC(@sql1)

     

     

    Bonne chance
    lundi 25 février 2008 12:37

Toutes les réponses

  • Essayez

     

    Code Snippet

    DECLARE @sql1 nvarchar(800)

    SET @sql1 = 'SELECT evt_num FROM evt'

    SET @sql1 =

    '

    INSERT INTO OPENROWSET(''Microsoft.Jet.OLEDB.4.0'',''Excel 8.0;Database=C:\temp\test.xls;'',''SELECT evt_num FROM [Sheet1$]'')

    '

    + @sql1

     

    EXEC(@sql1)

     

     

    Bonne chance
    lundi 25 février 2008 12:37
  • Fallait y penser
    Ca marche, merci beaucoup

    ps : Si vous avez une explication au fait que ma solution ne marchait pas je suis preneur. Je ne suis pas expert SQL Server et j'aurai aimer comprendre pourquoi.
    lundi 25 février 2008 12:49
  • votre solution sépare la logique de la déclaration.

    Pour SQL serveur , ils apparaîtront comme deux déclarations séparées.

     

    lundi 25 février 2008 13:16
  • stp voila mon code
     use gestion_personnel
     
    DECLARE @sql1 nvarchar(800)
    
    SET @sql1 = 
    '
    select connexion.login from gestion_personnel.dbo.connexion
    '
    
    SET @sql1 =
    
    '
    INSERT INTO OPENROWSET(''Microsoft.Jet.OLEDB.4.0'',''Excel 8.0;Database=C:\temp\test.xls;'',''select connexion.login FROM [Sheet1$]'')
    '
    
    + @sql1
    
    
    
    EXEC(@sql1)


    mais toujours il me genere l'erreur:

    OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "(null)" returned message "Unspecified error".
    Msg 7303, Level 16, State 1, Line 2
    Cannot initialize the data source object of OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "(null)".

    jeudi 30 juin 2011 13:01
  • stp voila mon code
     use gestion_personnel
     
    DECLARE @sql1 nvarchar(800)
    
    SET @sql1 = 
    '
    select connexion.login from gestion_personnel.dbo.connexion
    '
    
    SET @sql1 =
    
    '
    INSERT INTO OPENROWSET(''Microsoft.Jet.OLEDB.4.0'',''Excel 8.0;Database=C:\temp\test.xls;'',''select connexion.login FROM [Sheet1$]'')
    '
    
    + @sql1
    
    
    
    EXEC(@sql1)


    mais toujours il me genere l'erreur:

    OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "(null)" returned message "Unspecified error".
    Msg 7303, Level 16, State 1, Line 2
    Cannot initialize the data source object of OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "(null)".


    jeudi 30 juin 2011 13:04