Tag: ssis

使用C#中的Google Maps API和SSIS包获得行驶距离

更新:找到Google distancematrix并尝试相应地修改我的代码。 我在这里得到一个无效的参数错误: return new GeoLocation(dstnc, uri.ToString()); } catch { return new GeoLocation(0.0, “https://”); } 基本上,我需要从两个已知的纬度/长度获得行驶距离。 我正在使用SSIS包,我在网上发现了一个很棒的教程,非常接近于产生我需要的结果。 教程: http : //www.sqlmusings.com/2011/03/25/geocode-locations-using-google-maps-v3-api-and-ssis/ 他们正在做的是将已知的街道地址传递给Google并从返回的XML中读取lat / long。 我需要做的不同的是传递两个已知的纬度/长度并读取返回的距离。 示例: https : //maps.googleapis.com/maps/api/distancematrix/xml?origins=32.1576780,%20-82.9070920&destinations=27.6536997,%20-81.5158944&mode=driving&units=imperial&sensor=false 他们使用C#,我不熟悉如何进行修改。 无论如何我还是刺了一下这就是我想出来的: using System; using System.Collections.Generic; using System.Text; //added these using System.Data; using System.Net; using System.Web; using System.Xml; // THIS CODE AND INFORMATION ARE PROVIDED “AS […]

将DataFlow脚本组件中的RecordSet枚举为数据源

这是与SSIS相关的问题 我有一个设置为对象类型的变量。 一个Dataflow将一些已过滤的行导入记录集,此记录集存储在对象变量中。 在完全独立的数据流中,我需要使用该记录集作为源。 所以我创建了一个脚本组件并告诉它它将是一个数据源。 我将其设置为具有我需要的三个输出列。 我的问题是,如何让记录集中的每一行在脚本组件中创建一个新行? 我将记录集变量作为只读变量传递,当我尝试将变量传递到每一行时我无法做到,因为变量没有定义get枚举器方法。 因此,我无法将每一行打印到这些列中,并且不能将我的脚本组件用作数据源。 有没有其他人遇到类似的情况? 我做了一些愚蠢的事情,还是你用另一种方式做事? 作为一个说明,我在脚本和Visual Studio 2008中使用C#

MessageBox允许进程自动继续

我想要一个消息框显示,程序只是继续,而不是等我在这个消息框上单击确定。 可以吗? else { // Debug or messagebox the line that fails MessageBox.Show(“Cols:” + _columns.Length.ToString() + ” Line: ” + lines[i]); }

从变量使用OLE DB Source命令的EzAPI等价物是什么?

TL;博士 什么是使用OLE DB Source的EzAPI代码,数据访问模式为“来自变量的SQL命令”并分配变量? 前言 每月一次,我们需要使用生产数据子集刷新公共测试站点。 我们已经确定,根据我们的需求,SSIS解决方案最适合完成此任务。 我的目标是系统地构建大量(100+)“复制”包。 EzAPI是SSIS对象模型的友好包装器,它似乎是一种保存鼠标点击的好方法。 我希望我的包装看起来像 变量 – “tableName”; [架构]。[表名] 变量 – “sourceQuery”; SELECT * FROM [Schema]。[TableName] DataFlow – “Replicate Schema_TableName” OLE DB源 – “Src Schema_TableName”; 数据访问模式:来自变量的SQL命令; 变量名: User::sourceQuery OLE DB目标 – “Dest Schema_TableName”; 表或视图名称变量 – 快速加载; 变量名称 – User :: tableName 码 这是我的表到表复制包的代码。 using System; using System.Collections.Generic; using System.Linq; using […]

SSIS – FTP组件的动态文件名

我正在尝试在SSIS中创建一个数据流,以帮助我通过FTP上传文件,我遇到了一些麻烦。 文件名必须是动态的,格式为filename_mmddyy.xls。 因此,它每天都应用日期并上传新文件。 我能够通过以下表达式使文件在数据流中正确保存: @[User::path]+ Right(“0″+(DT_STR,4,1252)DatePart(“m”,getdate()),2)+ Right(“0″+(DT_STR,4,1252)DatePart(“d”,getdate()),2)+ Right(“0″+(DT_STR,4,1252)DatePart(“yyyy”,getdate()),2)+ “.xls” 但是,FTP组件不会将其作为LocalPath的表达式。 我试图在原始数据流中覆盖脚本组件内的User :: path变量,但这似乎也不起作用。 我知道我错过了一切简单的东西,但是我已经盯着它看了很长时间而且它只是没有找到我。 谢谢! 编辑 好吧,所以在经过另一天的愚弄之后,这就是我想出来的: 我完成了创建平面文件的原始任务。 旁注,我的供应商实际上需要一个真正的excel xls而不是csv,所以我不得不建立一个文件连接目的地,然后要求我在我的服务器上创建一个静态文件。 然后我使用脚本任务(C#)将静态文件复制到具有动态名称的文件。 当然,我必须保留原始文件,因为excel目的地需要在那里。 最后,我建立了另一个文件连接并使用上面的表达式作为它的连接字符串。 然后我让FTP任务使用文件连接作为要上载的文件。 我要试着把它整理一下。 我想我可以逃避不使用脚本任务,而是使用文件系统任务来复制和使用文件连接来帮助处理动态路径名。 我学到的底线是:在SSIS中,当它显示“PathIsVariable”时,你在该文本字段中放入的内容被视为变量。 因此,如果我放入@ [User :: path],它会解析为“C:\ pathonmydrive”。 然后,SSIS查找具有THAT名称的变量,即C:\ pathonmydrive,以查找该文件。 这是一个反对直觉,但现在我知道我可以避免这个陷阱。

尝试从SSIS包保存大于~1.5 MiB的文件时,EPPlus 2.9.0.1抛出System.IO.IsolatedStorage.IsolatedStorageException

问题 当我尝试使用EPPlus保存文件超过~1.5 MiB时ExcelPackage.Save()抛出System.IO.IsolatedStorage.IsolatedStorageException 。 说明 我正在使用Visual Studio 2008 9.0.30729.4462 QFE和.NET Framework 3.5 SP1创建一个SSIS包,以通过EPPlus 2.9.0.1库导出SQL Server 2008 SP2 10.0.4311.0 64 bit表的EPPlus 2.9.0.1 。 SSIS包非常简单:一个Execute SQL Task ,它读取表的内容并将其放入一个变量后跟一个Script task ,该Script task读取记录集变量并通过EPPlus将内容保存到磁盘。 脚本任务的代码是: namespace ST_00a0b40814db4c7290b71f20a45b62c6.csproj { using System; using System.AddIn; using System.Data; using System.Data.OleDb; using System.IO; using Microsoft.SqlServer.Dts.Runtime; using Microsoft.SqlServer.Dts.Tasks.ScriptTask; using OfficeOpenXml; [AddIn(“ScriptMain”, Version = “1.0”, Publisher = […]

SSIS通过脚本任务写入对象变量

我有一些代码,我想最终得到2个列表。 开始和结束。 它们包含月份的开始日期和月份的结束日期。 这两个列表我想放入一个对象变量,所以我可以在ssis中的foreachloop容器中使用该对象,并使用startofmonth和endofmonthdates循环遍历每一行(变量:min和max) – 但我不知道如何 这是我的代码: String s = “2013-01-01”; String b = “2014-01-01”; using (SqlConnection connection = new SqlConnection(“Server=localhost;Initial Catalog=LegOgSpass;Integrated Security=SSPI;Application Name=SQLNCLI11.1”)) { connection.Open(); string query = “select mindate,maxdate from dbo.dates”; using (SqlCommand command = new SqlCommand(query, connection)) { using (SqlDataReader reader = command.ExecuteReader()) { while (reader.Read()) { s = reader.GetDateTime(0).ToShortDateString(); b = […]

如何从SQL Server生成文档(docx或pdf)?

我知道这有点主观,但我正在研究以下情况: 我需要从SQL Server数据库中的数据自动生成许多文档。 将在数据库上安装一个MVC3应用程序以允许数据输入等,并且(可能)有一个“Go”按钮来生成文档。 需要有一些关于如何创建,命名和存储这些文档的业务逻辑(例如,“父”文档获得一个名称并进入一个文件夹,“子”文档获得计算名称并进入子文件夹。 只要输出可以是EN-US和AR-QA(RTL文本),文档可以是PDF或Doc(x)(甚​​至两者) 我知道SSRS,Crystal Reports,VSTO,代码中的“手动”PDF,单词邮件合并等等有很多选项……如果有任何用途,我们已经有了HTML到PDF工具吗? 有没有人对如何解决这个以及“最好”(最实用)的方法有什么现实世界的建议? 我需要在服务器上安装和配置的“额外”越少越好 – 开发越快越好(一如既往!) 到目前为止的调查结果: Word Mail Merge(或VSTO)根本不提供我所需要的简单性,控制性和灵活性 – 真的很遗憾。 很高兴定义一个dotx并能够在单独的基础上将数据传递给它以生成docx。 只有我能够实现这一点(我可能在这里错了)是通过名称循环控制/书签并替换值……凌乱。 OpenXML基于dotx模板创建文档,即使使用OpenXML也不如(IMHO)那么简单。 您必须按名称替换每个Content控件,因此维护不是最简单的任务。 SSRS从表面上看 ,这是一个很好的解决方案(尽管它需要SQL Enterprise),但是如果你想动态生成文件夹和文档,它会变得更加复杂。 数据驱动的订阅非常接近我想要的。 Winnovative HTML to PDF Convertor *这是我们已经拥有的工具(尽管是.Net 2.0版本)。 这允许我生成HTML页面并将它们转换为PDF。 对我来说是一个不错的选择,因为我可以在MVC3网站上运行它并将参数传递给控制器​​以生成PDF。 这使我对文件夹和命名结构进行了更细粒度的控制 – 这种方法的问题只是以正确的方式生成页面。 奖金是它自动给我一个“预览”……基本上只是HTML页面!

从平面文件中将数百万条记录插入SQL Server有哪些陷阱?

我即将开始编写一个Windows窗体应用程序的旅程,该应用程序将打开一个管道分隔的txt文件,大小约为230 mb。 然后,此应用程序将此数据插入到sql server 2005数据库中(显然这需要迅速发生)。 我正在使用c#3.0和.net 3.5来完成这个项目。 我不是要求应用程序,只是在这里提供一些公共建议和潜在的陷阱建议。 从我收集的网站上我发现SQL批量复制是一个先决条件,我应该考虑一下(我认为只需用表格应用程序打开txt文件将是一项很大的努力;可能会将其分解为blob数据?)。 谢谢,如果有人需要,我会编辑问题以便清楚。

你能从.net运行SSIS任务吗?

我已经安排了运行SSIS包的sql代理任务。 我希望能够从.net运行SSIS包。 有没有办法直接运行SSIS包或至少运行SQL代理任务,然后运行SSIS包。 如果它有助于用C#编写的.net 3.5 Web应用程序 谢谢!