2009-06-22 2 views
0

두 개의 배치 파일을 사용하여 zip 파일의 압축을 풀고 압축 해제 된 xls 파일을 CSV로 변환 한 다음 BCP 데이터를 SQL 테이블로 가져 오는 콘솔 응용 프로그램이 있습니다. 이 콘솔 앱이 하루에 한 번 실행되도록 예약하고 싶습니다. 내가 말한 응용 프로그램을 실행하는 Windows 작업 스케줄러를 설정합니다. 나는 "테스트 실행"작업을 시도하고 오류가 발생하지 않습니다. 예외가 잡힐 때 txt 파일에 쓰는 응용 프로그램을 가지고 있고 "사용하려고하는 xls 파일의 행이 다른 프로세스에서 사용 중입니다"라는 오류 메시지가 나타납니다.Windows 작업 스케줄러에서 예약 된 콘솔 응용 프로그램을 실행할 수 없습니다.

참고 : SQL에 xls 가져 오기를 수행하는 데 더 효과적인 방법이 있지만 SQL Server의 전체 버전을 구입하기에는 너무 저렴하다고 생각합니다.

+0

스크립트를 게시 할 수 있습니까? – Grzenio

+0

첫 번째 배치 파일은 7zip (7z.exe x C : \ BCP \ RFSR.zip -aoa -oC : \ BCP \ -ppassword)을 사용하여 실행합니다. del c : \ BCP \ RFSR.csv *. */q –

+0

초 배치는 BCP를 사용하여 CSV를 SQL DB에 복사합니다. (bcp server.dbo.test in c : \ BCP \ RFSR.csv -F2 -t, -c -S 서버 -U 사용자 이름 -P 암호) –

답변

1

뭔가가 XML 파일을 보류하지 않았습니다. 다른 프로그램이 해당 자원을 사용하고 있는지 확인하고 연결이 닫혀 있는지 확인해야합니다. 테스트 실행에서 연결을 닫지 않은 다음 나중에 작업이 실행될 때 리소스를 릴리스하지 않은 다른 프로세스 (응용 프로그램의 이전 인스턴스)가있을 수 있습니다.

1

완전히 압축 해제되기 전에 xml 파일을 사용하려고 삼진하는 것처럼 들립니다. 또한 앞서 언급 한 rie819의 가능성을 확인하십시오.

스크립트를 게시 할 때 도움이 될 수 있습니다.

+0

시스템 가져 오기 시스템 가져 오기가져 오기 Microsoft.Office.Interop 문자열 = System.Environment.CurrentDirectory.ToString 서브 메인() callRFSRDecompressBatch() 수입품의 System.Data.SQLClient 수입 System.Data.OleDb 수입 System.IO 수입 System.Text 모듈 Module1의 희미한 currentDir ExcelToCVS() callBCPCSVBatch() End Sub –

+0

Sub ExcelToCVS() 희미한 StrConn 문자열로 희미한 DA 새로운 위해 OleDbDataAdapter 희미한 DS로 새로운 데이터 집합 희미한 str을 정수 으로 정수 희미한의 RowCount으로 정수 희미한 InnerCount으로 정수 희미한 OuterCount으로 문자열 희미한 열 개수로 시도 StrConn = "제공자 = Microsoft.Jet.OLEDB.4.0; 데이터 원본 = c : \ BCP \ RFSR.XLS; 확장 속성 = Excel 8.0; " –

+0

Dim objConn As 새 OleDbConnection (StrConn) 시도해보십시오. objConn.Open() if objConn.State = ConnectionState.그리고 휴일 그렇지 종료 예외 logError (예) 종료 하위 끝은 새로운에서 OleDbCommand으로 희미한 objCmd을 시도로서 캐치 전 하는 경우 ("* 선택에서 [rfsr의 $]", objConn) objCmd.CommandType = CommandType.Text 희미한 ObjStreamWriter에서는 StreamWriter로 ObjStreamWriter = 새에서는 StreamWriter ("C : \ BCP \ RFSR.CSV") –

0

필요한 결과를 얻는 방법을 찾았습니다. 콘솔 앱에서 두 개의 배치 파일을 가져 왔습니다. 이제 한 배치, 콘솔 응용 프로그램 및 마지막 배치를 실행하도록 예약 된 작업이 있습니다. 내가받은 응답은 모두 정확했다. 실행 중 콘솔 창이 열리기 때문에 XML을 공개하지 않았다. 그들이 제거 되었기 때문에 더 이상 오류가 없습니다. 도와 주셔서 감사합니다. -Z

관련 문제