我试图通过提供用c#编写的脚本来帮助我们的dba,所以他可以在他的ScriptComponent中使用它。 我有一个输入文件,逐行处理并在Output0Buffer中创建一行,如http://www.codeproject.com/Articles/441678/Getting-Started-With-SSIS-Script-transforms?fid=中所述。 1765989&TID = 4344144 我已经编写了测试方法并且它工作正常,但是在示例中显示的Input0_ProcessInputRow方法中插入逻辑之后,我们收到一条错误,指出Output0Buffer在以下行中不存在: Output0Buffer.AddRow(); Output0Buffer.Data = line; Output0Buffer.RegionName = regionName; 我们在这里失踪了什么? 谢谢
我正在尝试创建我的第一个数据流组件,它将采用输入地址通过PAF api运行它,并从文件源或db表中吐出格式正确的地址和原始输入列。 我需要以特定格式提供源输入地址,因此我需要用户将源输入列映射到特定的自定义输入列。 我能够使用input.ExternalMetadataColumnCollection创建自定义输入列,这很有效。 但是我现在被告知我需要提供包含源文件中所有可用列的选项作为输出列。 我已经尝试创建出现在Column Mapping选项卡中的其他输入列,但我并不是所有的源输入列都可用。 以下是我到目前为止所尝试的内容。 任何建议将不胜感激。 所以我的问题是如何添加其他自定义输入列以及包括所有源列? IDTSExternalMetadataColumnCollection100 externalInput = input.ExternalMetadataColumnCollection; externalInput.IsUsed = true; IDTSExternalMetadataColumn100 externalInputColumn = externalInput.New(); externalInputColumn.Name = constInputAddressLineOne; externalInputColumn.DataType = DataType.DT_WSTR; externalInputColumn = externalInput.New(); externalInputColumn.Name = constInputAddressLineTwo; externalInputColumn.DataType = DataType.DT_WSTR;
我在使用Odbc连接字符串调用DB2数据库时会定期收到此错误消息。 我已经尝试将DbCommand对象的CommandTimeout设置为多个值,但我仍然收到以下错误。 SQL0666 – SQL查询超出指定的时间限制或存储限制。 是否有一个技巧来阻止错误输出。 这很奇怪,因为相同的查询有时会起作用,有时会超时。 任何帮助,将不胜感激。 谢谢!
我可以从我的C#App成功运行SSIS包。 有没有办法在.NET(C#)应用程序中运行SSIS包中的特定任务?
我正在使用ssis在crm中进行一些更新。 我试图根据某些条件关闭crm中的一些案例。 这是我在public override void Input0_ProcessInputRow(Input0Buffer Row)方法中的示例代码。 public override void Input0_ProcessInputRow(Input0Buffer Row) { // Create a Entity object of type ‘case’ Entity caseEnt = new Entity(“incident”); Entity incidentResolution= new Entity(“incidentresolution”); incidentResolution.Attributes.Add(“incidentid”, new EntityReference(“incident”, Row.DEVCaseGUID)); caseEnt[“incidentid”] = Row.DEVCaseGUID; //organizationservice.Update(caseEnt); //Changes added here by // EntityCollection collection= GetAssociatedActivities(new EntityReference(“incident”, Row.DEVCaseGUID)) foreach (Entity activity in collection.Entities) { CancelActivity(activity, […]
关于执行SQL任务生成的结果集,我有两个问题 – 1)存储结果集的对象的类是什么? 它是ADODB记录集吗? 2)无论是什么对象,如何迭代该对象。 我想简单地迭代它以网格forms打印它,就像它出现在SQL服务器管理工作室中一样。 我想这样做而不将它放入DataTable对象或类似的东西。 这将浪费记忆和时间。 有人可以告诉我该怎么做吗?
情况:我有一个查询列表,以便每个选择来自各自表的数据。 我想创建这个查询列表作为SSIS对象变量,并使用查询作为DFT中的OLE DB源迭代每个查询。 有没有办法做到这一点,以便在我们使用与第一个不同的表切换到查询后,DFT源组件没有元数据不正确的问题? 目的地也将改变。 我知道您可以延迟validation,但我不相信这有助于切换元数据。
使用EZApi,创建EzOleDbSource对象,并为其分配Table属性。 添加了另一个任务(EzDerivedColumn)并附加到EzOleDbSource对象。 当我打开包时,我需要单击OLEDB源以获得列输出到派生任务的输入。 有没有办法使用EzApi以编程方式设置输入和输出映射? 注意:我正在使用LinkAllInputsToOutputs(); 码: EzSqlOleDbCM RefConn = new EzSqlOleDbCM(package, dataVault_ConMgr); EzOleDbSource ezOleDbSource_SatFromStaging = new EzOleDbSource(satelliteDft); ezOleDbSource_SatFromStaging.Table = formatSQLTableName(settings.bd_datavault_schema_staging, stgTable); ezOleDbSource_SatFromStaging.Name = settings.ssis_prefix_dataflow_oledb_source + stgTable; ezOleDbSource_SatFromStaging.LinkAllInputsToOutputs(); EzDerivedColumn ezDerivedColumn = new EzDerivedColumn(satelliteDft); ezDerivedColumn.LinkAllInputsToOutputs(); ezDerivedColumn.AttachTo(ezOleDbSource_SatFromStaging); ezDerivedColumn.Name = settings.ssis_prefix_task_derived + stgTable;
我正在进行一些测试,将执行SQL任务中的完整结果集输出到Foreach循环中,如下所示 我只想将我的变量值输出到消息框,但它似乎不起作用。 public void Main() { try { // TODO: Add your code here string Variables = Dts.Variables[“User::ClientID”].ToString() + Dts.Variables[“User::Passphrase”].ToString() + Dts.Variables[“User::KeyFileName”].ToString() + Dts.Variables[“User::InboundEncryptionRequired”].ToString() + Dts.Variables[“User::SftpResponseRequired”].ToString() + Dts.Variables[“User::OutboundDecryptionRequired”].ToString() + Dts.Variables[“User::SftpHost”].ToString() + Dts.Variables[“User::SftpPort”].ToString() + Dts.Variables[“User::SftpUserName”].ToString() + Dts.Variables[“User::Active”].ToString() + Dts.Variables[“User::SftpDownloadFrom”].ToString() + Dts.Variables[“User::SftpUploadTo”].ToString() + Dts.Variables[“User::SftpDeleteFilesFromRemote”].ToString() + Dts.Variables[“User::ConnectionProtocol”].ToString(); MessageBox.Show(Variables); } catch (Exception Ex) { MessageBox.Show(Ex.Message); } } } } […]
我在FTP服务器上收到一个文件,该文件的名称是动态生成的。 我正在尝试编写一个程序来检查服务器上是否存在任何文件。 string userName = Dts.Variables[“User::SFTPUsername”].Value.ToString(); string password = Dts.Variables[“User::SFTPPassword”].Value.ToString(); **string fileName = Dts.Variables[“User::FilePattern”].Value.ToString();** string ftpURL = String.Format(“ftp://11.11.11/upload/{0}”, fileName); WebClient request = new WebClient(); request.Credentials = new NetworkCredential(userName, password); FtpWebRequest ftpRequest = (FtpWebRequest)WebRequest.Create(ftpURL); ftpRequest.Method = WebRequestMethods.Ftp.GetFileSize; ftpRequest.Credentials = new NetworkCredential(userName, password); using (FtpWebResponse ftpResponse = (FtpWebResponse)ftpRequest.GetResponse()) { byte[] newFileData = request.DownloadData(ftpURL.ToString()); string fileString = System.Text.Encoding.UTF8.GetString(newFileData); […]