2014-07-11 7 views
0

작업 :이 Excel 파일을 통해 반복하고 SQL 테이블에 데이터를 삽입하지만 프로세스에서 오류가 발생하고 어떤 오류가 발생했는지 알 수 없습니다.ForEachloop SSIS

SSIS는 임의 순서로 파일을 반복하지 않지만 연결 관리자로부터 연결을받을 수 없다는 오류가 표시됩니다. Excel Source가 유효성 검사에 실패했으며 오류 코드가 반환되었습니다. 64 비트 실행 시간을 False로 설정했습니다. 이것은 Windows 7 OS의 VS 2008/SQL Server 2008 R2에서 발생했습니다. 처음에는 Windows XP-VS2008/SQL Server 2008 R2에서 전체 프로세스를 성공적으로 실행할 수있었습니다.

문제점 : 폴더에 70 개의 홀수 파일이 있으면 어떤 파일 시스템이 다음으로 반복되는지 어떻게 알 수 있습니까? 문제가 발생하고 SSIS에서 작업중인 파일이 확실하지 않습니다. 그러나 나는 파일이 실행되고 데이터가 SQL에 있음을 보았습니다. SSIS가 현재 작동하고 있거나 다음에 작동 할 파일을 찾는 방법을 알려주십시오.

+0

당신은 루프가 다음에 선택하는 것입니다 알 수 없습니다 enter image description here

는 (C#을) 스크립트 작업 편집기에서 읽기 전용 변수로 변수를 추가하고 주요 방법이 같은 것을 추가 . 현재 선택한 내용 만 알 수 있습니다. 자신 만의 foreach 루핑 메커니즘을 사용하기로 선택하지 않는 한. 내 역사에서 어딘가 알고, 나는 가장 오래된 또는 가장 오래된 최신에 따라 파일을 처리하는 방법에 대한 해답을 얻었습니다. – billinkc

+0

답변을 주셔서 감사합니다. Billinkc, 어떻게이 문제를 해결할 수 있습니까? 나는 sql 테이블로 돌아가서 파일이 있는지 확인하고 그 파일을 지울 수 있지만 지루한 프로세스가 될 수 있습니다. 이 작업을 더 잘 수행 할 수 있습니까? – user1810575

+1

마지막으로 기록 된 것이 무엇인지 알 수 있도록 ID 필드가있는 테이블에서 가져 오기 전에 _ 루프에있는 파일을 테이블에 기록하는 단계를 추가하십시오. 사실 이것은 어쨌든 감사 메커니즘으로 영구히 구축 할 가치가있을 것입니다. 또한 오류가 발생하면 msgbox가 변수 값인 이벤트 핸들러를 추가 할 수 있습니다. –

답변

0

당신은 스크립트 작업을 추가하고 foreach 루프에서 사용되는 변수를 로그인 할 수 있습니다.

public void Main() 
{ 
    bool fireAgain = true; 

Dts.Events.FireInformation(0, "Logging FELC variable", "File: " + Dts.Variables["User::FilePath"].Value.ToString(), string.Empty, 0, ref fireAgain); 
0

Excel 처리를 수행하기 직전에 ForEach 컨테이너 내에 스크립트 작업을 추가하십시오. 스크립트 작업에서 ForEach 루프에서 구성한 변수를 추가하여 파일 이름을 읽기 전용 변수에 보관합니다. 스크립트 자체에서 FireInformation 이벤트를 호출하면 SSIS의 진행 로그에 정보 메시지가 추가됩니다. FireInformation 호출에서 파일 이름 변수의 값을 메시지 인수로 전달하십시오.

이렇게하면 처리중인 각 파일과 실패했을 때 처리중인 파일을 볼 수 있습니다.

FireInformation 도움말 : http://msdn.microsoft.com/en-us/library/microsoft.sqlserver.dts.runtime.idtscomponentevents.fireinformation.aspx