Thật không may, không có cách nào để đạt được điều này từ giải pháp dịch vụ tích hợp của bạn (trong studio trực quan) mà không cần mở các gói hoặc có thể thực thi chúng bằng DTExec Utility
. Nhưng bạn có thể thực hiện một số cách giải quyết khác và kiểm tra lỗi theo chương trình:
Giải pháp thay thế
- Tôi đã tạo một ứng dụng winforms bằng visual studio (sử dụng Vb.Net)
- Tôi đã thêm
Microsoft.SqlServer.DTSPipelineWrap
vàMicrosoft.SQLServer.ManagedDTS
làm tài liệu tham khảo -
Tôi đã sử dụng mã sau để lặp lại các gói trong một thư mục cụ thể, xác thực và nhận lỗi trong tệp nhật ký:
Dim strPackagesDirectory As String = "C:\Users\Admin\Desktop\New folder" Dim strOutputLogFile As String = "D:\1.txt" For Each strFile As String In IO.Directory.GetFiles(strPackagesDirectory, "*.dtsx", IO.SearchOption.TopDirectoryOnly) Dim pckg As New Microsoft.SqlServer.Dts.Runtime.Package Dim app As New Microsoft.SqlServer.Dts.Runtime.Application pckg = app.LoadPackage(strFile, Nothing) Dim obj = pckg.Validate(Nothing, Nothing, Nothing, Nothing) If pckg.Errors.Count > 0 Then Using sr As New IO.StreamWriter(strOutputLogFile, True) sr.WriteLine("") sr.WriteLine(strFile) sr.WriteLine("--------------") For Each err As Object In pckg.Errors sr.WriteLine(err.Description) Next sr.WriteLine("==========") sr.Close() End Using End If Next
Tài liệu tham khảo
- https://msdn.microsoft.com/en-us/library/ms136090.aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1
- https://msdn.microsoft.com/en-us/library/microsoft.sqlserver.dts.runtime.package.aspx
- https://msdn.microsoft.com/en-us/library/microsoft.sqlserver.dts.runtime.dtscontainer.validate.aspx