【问题标题】:Export Sql server data to Excel by using Query使用 Query 将 Sql server 数据导出到 Excel
【发布时间】:2014-04-23 09:02:43
【问题描述】:

我正在尝试使用 sql 查询将 SQL 服务器数据导出到 excel 文件。但我收到错误

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

我正在使用的查询

select * from OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=C:\share\Test1.xlsx;HDR=YES','SELECT id FROM [Sheet1$]') SELECT id FROM Table

我也启用了

sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Ad Hoc Distributed Queries', 1;
GO
RECONFIGURE


 EXEC master.dbo.sp_MSset_oledb_prop 'Microsoft.Jet.OLEDB.4.0', 'AllowInProcess', 0 
GO 
EXEC master.dbo.sp_MSset_oledb_prop 'Microsoft.Jet.OLEDB.4.0', 'DynamicParameters', 0
GO 

我还以完全权限共享了我的文件夹。 我给 Excel 文件提供了与表名相同的标题 但同样的错误

【问题讨论】:

    标签: sql sql-server database excel export-to-excel


    【解决方案1】:

    您使用的连接错误:是 JET 驱动程序

    • 用于读取/写入各种类型的平面文件
    • 指向一个名为 c:\share\test1.xlsx 的文件
    • 已过时,已被 ACE 驱动程序取代。

    您需要重新编写代码。 This article 给出了如何做到这一点的好主意。有一点你不能错过,并且应该首先做的是标题为引用 ADO 对象库的段落。

    您可能对代码正在执行的操作有很多问题(例如,什么是 INTEGRATED SECURITY=SSPI?还有更多问题),我不会回答这些问题,因为我会写一本书的一章,我不知道你是否会问他们中的任何一个。我建议您阅读文章,尝试代码,然后在此处的个人帖子中发布个别问题。

    一旦线索;这段代码:

    'Connect to the Pubs database on the local server.
    strConn = strConn & "DATA SOURCE=(local);INITIAL CATALOG=pubs;"
    

    ...指定数据库服务器和数据库名称。如果它不是您的本地计算机,请将 (local) 替换为数据库服务器的名称。 pubs 名称是数据库的名称。替换为您的数据库。

    还有,这一点:

    ' Extract the required records.
    .Open "SELECT * FROM Authors"
    

    这里,“SELECT * from Authors”是定义查询将返回的数据的 SQL。您需要将其替换为 SQL,该 SQL 将从您的数据库中获取您想要的数据。再次,一个相当大的主题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-30
      相关资源
      最近更新 更多