我有一个包通过一个文件夹和它的子文件夹来获取客户端数据.协议已更改,现在客户端每次都会以不同的文件夹名称发布数据.我想知道我是否可以在主文件夹上执行foreach循环并排除特定的文件夹archive.
我没有编写脚本的知识,所以我想知道SSIS是否可以在没有脚本的情况下做到这一点.
我的过程中的Foreach循环容器没有将新文件名推送到已建立的变量中。它遍历该过程的次数是有多少个符合条件的文件,我只需要文件名是动态的即可。
我创建了一个变量名称,该变量名称包含所需目录中第一个文件的完整文件路径。看起来像C:\Somepath\ExcelFile.xlsx
我还创建了一个变量名ExtProperties,将其用于ConnectionString中,其值是"Excel 12.0;HDR=Yes"
Foreach循环容器具有以下设置:
我之前提到的ExcelFileName变量已设置为索引0
我创建了一个具有以下相关属性的指向初始文件的Excel连接管理器:
表达式:我既尝试将设置ExcelFilePath为ExcelFileName变量,又对ConnectionString使用以下命令:
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + @[User::ExcelFileName] + ";Extended Properties=\"" + @[User::ExtProperties] + "\""
Run Code Online (Sandbox Code Playgroud)现在,它仅使用ConnectionString。
数据流正在使用通过Excel连接管理器的Excel源。数据流的目的是从每个excel文件中提取记录数,获取文件名和执行加载的用户,然后将信息推送到数据库中。但是,当推送到数据库时,文件名和记录数始终是第一个使用的文件,与许多文件满足条件的次数相同。
我没有收到任何错误消息或警告。我在控制流中使用了以下脚本来查看变量的值是否已更改,但是弹出的消息框显示我仍然可以获取初始值。
MessageBox.Show(Dts.Variables["User::ExcelFile"].Value.ToString());
Dts.TaskResult = (int)ScriptResults.Success;
Run Code Online (Sandbox Code Playgroud)
我一直在阅读有关此问题的主题,这些都是建议工作的设置,但这对我来说仍然是一个问题。任何帮助,将不胜感激。
sql-server excel ssis foreach-loop-container visual-studio-2017
我在每个循环中使用a来访问字符串数组的每个元素并检查这些字符串的特定特征.如果当前的元素显示了所需的字符,我需要访问此循环中的下一个元素.因此,当前开启只是一个指示我,下一个是我需要grep和处理的那个.有没有办法存储当前的一个并处理下一个?
谢谢
我有一个SSIS包,从特定目录加载csv文件,使用表达式和通配符来获取所有文件.
目前,FileSpec容器的容器会查找具有以下格式的所有文件:
fileName_environment_*
这工作正常.第二组文件现在从同一目录加载,为了区分这些文件,文件格式为:
fileName_environment_business_*
因此,第二个SSIS包只选择新文件,因为文件的结构如下所示:
filename_environment_abc
filename_environment_def
filename_environment_xyz
filename_environment_business_abc
filename_environment_business_def
filename_environment_business_xyz
Run Code Online (Sandbox Code Playgroud)
但第一个包将处理所有文件.
所以,问题是,我可以设置FileSpec第一个SSIS包来忽略格式为的文件:
fileName_environment_business_*
我需要检查我在Visual Studio 2017中运行的foreach循环容器任务的迭代次数.我怎么能实现这一点?
我有一个 SSIS 包,它检查跟踪表中存在的未处理文件,然后对其进行处理。到目前为止,只有一个文件会进来,我们会对其进行处理,因此流程是相应设计的。
然而,现在多个文件可以一次性进入,我们将这些多个文件存储在跟踪表中,并且有一列用于跟踪未处理的文件。
我正在尝试使用 For Each 循环来处理所有未处理的文件。因此,我获得了未处理文件的计数,并希望通过将参数传递给步骤 1 来简单地调整点 1,但我没有成功地使用 Foreach From Variable Enumerator 来完成此操作。我错过了什么吗?
sql-server ssis etl foreach-loop-container sql-server-data-tools
这是我的原始代码
#include "stdafx.h"
#include <string>
#include <list>
#include <algorithm>
using namespace std;
class testing
{
public:
int value;
testing(int v)
{
value = v;
}
int getval()
{
return(value);
}
};
void func(testing& ob)
{
printf("The value is %d\n", ob.value);
}
int _tmain(int argc, _TCHAR* argv[])
{
std::list<testing> testvar[3];
testing t1(0);
testing t2(1);
testing t3(3);
testvar[0].push_back(t1);
testvar[0].push_back(t2);
testvar[0].push_back(t3);
std::for_each(testvar[0].begin(), testvar[0].end(), func);
printf("Reached End");
getchar();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我修改它使func成为一个成员函数,并得到奇怪的编译错误,我在网上搜索,有人告诉使用bind1st,bind2nd
#include "stdafx.h"
#include <string>
#include <list>
#include <algorithm>
using namespace std;
class …Run Code Online (Sandbox Code Playgroud) 我相信我找不到合适的标题来解释我的问题,但我认为这是最好的简短解释.
请让我解释一下细节.
我想在页面上显示我的图片列表,并@foreach在MVC 3上使用循环.
部分查看此列表如下:
@model IEnumerable<Picture>
@foreach (var item in Model)
{
<a href="@item.PicId">
<img height="35px" style="padding-top:3px" src="ImageHandler.ashx?id=@item.PicId" id="pictureMy" />
</a>
}
Run Code Online (Sandbox Code Playgroud)
您可能已经了解我正在向此部分视图发送一个列表,它将图片放在一列上.
它没有任何问题,但我希望每行显示3张图片,但无法管理.
任何指导将非常感谢.
在此先感谢您的帮助.
asp.net-mvc ienumerable foreach-loop-container razor asp.net-mvc-3
ssis ×5
sql-server ×4
etl ×3
asp.net-mvc ×1
c++ ×1
excel ×1
ienumerable ×1
java ×1
razor ×1
ssis-2012 ×1
ssis-2017 ×1
string ×1