특정 폴더에 저장된 Excel 파일을 처리해야합니다.SSIS 스크립트 작업을 통해 OLEDBConnection을 여는 방법은 무엇입니까?
내 SSIS 패키지에서 File Enumérator로 구성된 Foreach 루프를 추가하여 filepath
변수를 채 웁니다. 그런 다음 스크립트 태스크는이 변수를 사용하여 Excel 파일을 열고 처리합니다.
그러나, 나는 스크립트 작업에서 내 파일에 OLEDB 연결을 열 수 아니에요. filepath
에 올바른 경로가 포함되어 있습니다. 스크립트에서 파일을 검사하는 테스트를 추가했습니다.
// Check file to process.
string rawfilePath = Dts.Variables["User::FilePath"].Value.ToString().Replace(@"\",@"\\");
if (rawfilePath == String.Empty || !File.Exists(rawfilePath))
Dts.Events.FireError(0, SCRIPT_TASK_NAME, "Invalid input file '" + rawfilePath + "'...", String.Empty, 0);
MessageBox.Show(rawfilePath);
// Open connection.
string rawFileConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source='"
+ rawfilePath + "';Extended Properties='Excel 12.0;HDR=NO;IMEX=1'";
MessageBox.Show(rawFileConnectionString);
OleDbConnection rawExcelConnection = new OleDbConnection(rawFileConnectionString);
rawExcelConnection.Open();
내 폴더 C:\TestFolder
입니다 : 여기
C:\TestFolder\export_20140101.xls
과
C:\TestFolder\export_20140102.xls
의 두 파일이 있습니다. "를 교체 할 필요가 영어
예외가 호출
메시지 상자가 작동합니까? 'rawExcelConnection' 또는'Open' 호출의 인스턴스 생성에 실패한 행은 무엇입니까? – billinkc
디버그 모드로 실행하거나 전체 코드를 try catch 블록에 넣은 다음 Dts를 사용하십시오.catch 블록의 예외 메시지가있는 FireError – jazzytomato
try/catch 블록이 내 목숨을 구했습니다! 오류는 데이터베이스 엔진 (ACE 12.0)에 관한 것입니다. 드라이버를 찾을 수 없으며 이전에 설치하지 않았습니다. – K4timini