Tag: sql server

SQL Server上的Excel VBA ODBC错误

我需要一些关于excel和VBA的build议。 我的系统是: MS SQL Server 2008R2 Excel 2003女士 ODBC设置和工作 我有一个VBA代码来从SQL服务器检索数据。 代码是: Sub update_supplier() 'CONNECTION STRING cnnstr = "ODBC;DSN=XXX-XXXX-XX;UID=sa;PWD=xxxxx;Database=XXXXXXXXX" 'Query qry_sup = "Select a.name from table a where a.postdate between '2013-01-01' and '2013-12-31'" 'UPDATE SHEET Set sql_qry_sup = ActiveSheet.QueryTables.Add(Connection:=cnnstr, Destination:=Range(Cells(1, 1), Cells(1, 1)), Sql:=qry_sup) sql_qry_sup.FillAdjacentFormulas = True sql_qry_sup.BackgroundQuery = False sql_qry_sup.Refresh End Sub 那么..当我运行这个macros,我收到一个通用ODBC错误(运行时错误1004),我敢肯定是有关BETWEEN选项在查询.. 事实上..如果'改变我的查询 qry_sup […]

如何将行转换为具有dynamic值的SQL或SSIS中的列

我有以下表格每日数据保存: 我需要读取最近7天的数据,并将行转置为列以将其保存在Excel报表中。 我试图用SSIS自动化这个。 请注意,这里的转置后行为的date将基于过去七天的dynamic,所以我不能在透视函数中使用静态列名称。 所需的输出将如下所示: 请build议如何通过MS-SQL或SSIS完成输出。 提前致谢。 以下是表架构和示例数据: IF OBJECT_ID('tempdb..#PriorityTrends') IS NOT NULL DROP TABLE #PriorityTrends CREATE TABLE #PriorityTrends ( CountDate DATETIME, [Priority 1] INT, [Priority 2] INT, [Priority 3] INT, [Priority 4] INT, [Priority 5] INT, Total INT ) INSERT INTO #PriorityTrends VALUES ('6/24/2014', 163, 235, 741, 265, 1932, 1404) INSERT INTO #PriorityTrends VALUES […]

使用Python处理CSV中的新行字符

我试图上传一个CSV文件到一个SQL Server数据库使用python.I无法处理新行字符。该文件行为不同在MS Excel和Noptepad ++ 以下是包含新行字符的CSV文件的示例。该文件在记事本++中看起来像这样 但在excel中看起来像这样 。 文本分成C栏两部分 我试图处理这样的换行符 wfile = open(UploadFile, "rU") reader = csv.reader(wfile,delimiter = ",",dialect='excel') with open(UploadFile, "r") as uploadData: formatter_string = "%d/%m/%y %H:%M" for row in reader: datetime_object = datetime.strptime(row[9], formatter_string) row[9] = str(datetime_object.date()) cursor.execute("insert into "+UploadTable+" values ("+(row[9])+","+(row[0])+","+(row[1])+","+(row[2])+","+(row[8])+","+(row[3])+","+(row[4])+","+(row[5])+","+(row[6])+","+(row[7])+")") 我在这里阅读这个当我试图上传这个文件时,我得到了这个错误 Failed to upload Facebook data. list index out of range 我不确定发生了什么问题。 […]

SQL Server数据导入向导中的数据types转换

我在做什么 我正在使用SQL Server 2012中的“导入和导出向导”从复杂的电子表格中的一个选项卡导入数据。 该标签有很多数据。 我想将标签中的原始数据导入到数据库中的临时表中,并从那里运行SQL脚本来转换(标准化)数据并将其加载到其最终模式。 在映射对话框中,我已将所有目标列设置为NVARCHAR(MAX)NULL(或者NTEXT NULL)。 我很高兴将所有文本导入,一旦数据加载到临时表中,我将处理数据types转换和规范化。 问题 该向导抱怨说某些列types无法转换。 这似乎是猜测源的数据types,并拒绝转换它认为是双打的列。 我根本不在乎它认为数据源是什么数据types。 我希望它把所有东西都当作文字来对待。 但是,似乎没有办法改变向导对源列types的猜测,或者强制它导入数据。 该向导不会让我运行包。 问题边界 我只想解决问题的提取部分,即如何从电子表格中获取数据到临时表中。 一旦解压出来,我用它做什么是一个单独的问题,我很高兴在中间级别处于NVARCHAR或NTEXT中。 期望的解决scheme 我想从电子表格中获取数据到一个临时表格,从那里我可以执行其他工作。 我很高兴将临时表中的所有内容都作为string数据。 我根本不关心向导认为它正在导入的数据types,我已经在目标表中指定了我想要的输出types。

运行sql脚本的batch file获取错误对OLE DB提供程序“Microsoft.ACE.OLEDB.12.0”的临时访问已被拒绝。

'你必须通过链接的服务器访问这个提供者。 我从远程数据库服务器远程运行这个batch file。 我试图做一个出口,不应该有一个需要链接的服务器。 当我在SSMS中运行查询时,它可以正常导出,但是当它从批处理中执行时,会给出下面的错误消息。 我认为这可能是因为他们在2个不同的帐户。 这是我的批处理代码: SQLCMD -S dbserver -E -d dbname-i \\Network\fldr\rpt\test\script.sql PAUSE 这是我的SQL脚本: SET ANSI_NULLS ON GO SET ANSI_WARNINGS ON GO SET QUOTED_IDENTIFIER ON GO PRINT 'exporting data…' INSERT INTO OPENROWSET( 'Microsoft.ACE.OLEDB.12.0', 'Excel 12.0; Database=\\Network\fldr\rpt\test\testdata.xls;', 'SELECT * FROM [Sheet1$]') SELECT * FROM [dbo].view_test ORDER BY [Col4] 错误信息在cmd中:

自动生成通过SSIS生成的Excel中的图表?

我有以下要求, SQL Server 2008计划作业在早上9点运行。 这个工作应该发送一个工作簿(工作簿1)中的数据和下一个工作簿(工作簿2)中附带的图表的电子表格。 数据必须具有来自SQL表的值。 图表必须反映工作簿1中的值。 这张表应该邮寄给n个用户。 n个用户甚至不知道sql服务器,不知道服务器的用户名和密码。 他们必须只有两个工作簿的电子表格。 我决定做下面的事情 1)创build一个将数据格式化成表格的存储过程2)调用一个SSIS,将数据复制到excel的workbook1中3)在同一个excel的workbook2中创buildGraph 第一点和第二点,我已经完成了。 活动1和2之后,我会在excel下面有一些东西 Workbook1: Date | Column A | Column B | Column C | 10-7-14 | 0983883 | 09433344 | 4443333 | 11-7-14 | 0986444 | 06875544 | 4689073 | 我真的不能够做这个活动3.活动3必须从上面的表中取得值,并在工作簿2中创build图表 我知道可以用SSRS来完成,但是我想知道其他的方法,因为我们只有SSIS,而SSRS完全不在范围之内。 由于某些原因,SSRS被限制在我们的系统中使用。 我已经尝试过不同的方式来做到这一点。 (在SSIS的excel模板的workbook2中创build了一个dynamicgraphics,并将值传输到workbook1呈现graphics,但不能令人悲伤)。 我无法使用提供给SSIS的空的Excel模板创builddynamicgraphics。 Excel是这里的问题,它不允许任何预定义的graphics。 它总是期望创造一个图表的价值。 我也可以去一个VBA的macros选项,(如创build一个button,让用户点击button来生成图表),但我不确定是否是一个可行的? Excel专家请帮忙! 我可能听起来像是一个业余爱好者,但请原谅我,因为我是SSIS的新手,没有一位同事知道如何去做,而且我所做的研究也得不到什么结果,这有点令人沮丧。

VB.net循环保存多个Excel文件

我正在使用以下代码将值写入数据表,然后将其导出到Excel。 我现在想要实现的是修改代码,以便为每个唯一客户保存一个单独的Excel文件([Customer Lookup]) 这是我的出口代码: Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 'Initialize the objects before use Dim dataAdapter As New SqlClient.SqlDataAdapter() Dim dataSet As New DataSet Dim command As New SqlClient.SqlCommand Dim datatableMain As New System.Data.DataTable() Dim connection As New SqlClient.SqlConnection 'Assign your connection string to connection object connection.ConnectionString = "server=inlt01\SQLEXPRESS; " […]

我无法使用epplus过滤date到生成excel的Month,Year,Date

我有一个看法,从中过滤数据并显示search结果,我将date格式更改为 convert(varchar(11),getdate(),113) 这是视图中的格式 在Excel中下载后,它只是给所有的date。 没有分组可用。 我尝试了几种格式来更改Excel中的date格式以及类似的代码 ews.Column(i).Style.Numberformat.Format = "d-mmm-yy"; 但没用。 我的查看返回date,如19 Mar 2014 我想要格式为19-Mar-2014的date分组 请给我一个工作答案。

SSIS错误代码DTS_E_OLEDBERROR。 发生OLE DB错误。 错误代码:0x80040E37

这是我的第一个问题,在发布这个问题之前,我已经检查了所有以前的问题,与这些问题相同或与此相关,但我无法解决问题,尽pipe应用其他成员build议的修复程序。 请帮忙。 我的scheme:我已经把多个Excel工作表(MS Excel 2007格式)放在一个工作簿中。 我已经创build了一个包含范围的Uservariables,用于保存每个循环容器中的第一个表名。 我想做的事 :我想在一个工作簿中读取多个Excel工作表,然后将它们写入一个SQL表。 我已经能够完成读取一个Excel文件,并将其写入SQL表格,但不是多个Excel文件。 软件安装: 我正在使用带有BIDS的SQL Server企业版R2。 我到目前为止所采取的解决步骤: 在Excel连接pipe理器中设置了DelayValidation属性为True 已经使用了一个包含级别范围的variables,并为其分配了第一个表名,在我的情况下,它被命名为“Sheet1” 我的连接string是"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +@[User::SheetName]+ ";Extended Properties=\"EXCEL 12.0 XML;HDR=YES\";" 这被评估为正确的 已经设置Package属性使用32位validation,因为我使用的是32位操作系统 我在devise时没有遇到任何错误,但是当我开始debugging这个项目时,我得到了下面给出的错误, [Excel Source [1]] Error: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80040E37. [Excel Source [1]] Error: Opening a rowset for "C:\Users\XYZ\Desktop\Dataset\BasicData.xlsx" failed. Check that the […]

openrowset sql导出数据为excel(dynamic列名称)

我想从sql导出数据到Excel文件。 我能够将数据导出到预定义的文件,但我正在尝试创build一个文件并将数据导出到该文件。 我正在执行一个存储过程,每次都返回不同的列,我想将结果导出到Excel文件中并通过电子邮件发送。 我怎样才能做到这一点?