Tôi đang thực thi gói SSIS trên dòng lệnh với dtexec.exe
. Gói này gọi MessageBox.Show()
và MsgBox()
(tương ứng với C# và VB.NET) để hiển thị lỗi. Các hộp đang treo bộ xử lý công việc tự động vì nó đang chờ hộp đóng.Làm cách nào để vô hiệu hóa các hộp thông báo tương tác từ bên trong gói SSIS?
Tôi đã ở dưới the impression rằng các hộp sẽ bị ẩn khi không ở Chế độ tương tác. Các hộp tin nhắn có thể bị chặn mà không sửa đổi gói SSIS không? Các gói phần mềm là từ một nhà cung cấp phần mềm và tôi thực sự không nên thay đổi nó.
EDIT: Lệnh đầy đủ Tôi đang sử dụng (thay đổi nội dung để loại bỏ chi tiết)
C:\Program Files\Microsoft SQL Server\100\DTS\Binn\DTExec.exe /F D:\Path\To\Package.dtsx /Conn DBConnection;"Provider=SQLOLEDB;Data Source=SERVER;Initial Catalog=DB;Integrated Security=SSPI;Connect Timeout=60" \Package.Variables[User::InputFileName].Properties[Value];C:\Path\To\Input.csv
EDIT2: Ví dụ về mã hộp tin nhắn. Đây là một tác vụ kịch bản.
Public Sub Main()
MsgBox("Failed to read/parse input file or generic database failure while running " + Dts.Variables("System::PackageName").Value.ToString() + ". Please check the layout of the feed and database connectivity.")
Dts.TaskResult = ScriptResults.Failure
End Sub
EDIT3: Nếu bất kỳ ai trong tương lai quan tâm đến mã để kiểm tra InteractiveMode. Nó cũng phải được thông qua thông qua ReadOnlyVariables của Script Task. Tôi đã kết thúc việc sửa đổi gói vì có các vấn đề khác.
VB.NET
If CBool(Dts.Variables("System::InteractiveMode").Value) = True Then
....
End if
C#
if ((bool)Dts.Variables["System::InteractiveMode"].Value == true)
....
}
Bạn không chắc chắn lý do tại sao bạn có downvote và VtC. Có vẻ như một câu hỏi thích hợp cho trang web. Kịch bản vb/C# trông như thế nào? Nó có kiểm tra trạng thái của Biến tương tác biến SSIS không? – billinkc
Không, nó không nhìn vào biến InteractiveMode. Đây là từ một nhà cung cấp để thay đổi không phải là một lựa chọn đáng buồn. Tôi đã chỉnh sửa câu hỏi của mình và đưa vào ví dụ về cuộc gọi hộp tin nhắn. – merekel
Tôi không nghĩ rằng bạn có thể buộc thực hiện gói với chức năng MessageBox. IMO, bạn sẽ cần phải sửa đổi Tác vụ Tập lệnh để ngăn không cho nó bật lên các hộp. BTW, tôi upvoted câu hỏi để làm cho nó hợp pháp như tôi nghĩ rằng câu hỏi là legit. – rvphx