Làm cách nào để bạn truy cập vào biến RecordSet bên trong Tác vụ Tập lệnh?SSIS - Cách truy cập biến RecordSet bên trong Tác vụ Tập lệnh
Trả lời
Trên tab tập lệnh, hãy đảm bảo bạn đặt biến trong hộp văn bản readonlyvariables hoặc readwritevariables.
Đây là một kịch bản đơn giản mà tôi sử dụng để định dạng các lỗi trong luồng dữ liệu (được lưu trong Biến RecordSet) vào phần thân của email. Về cơ bản tôi đọc varialbe recordset vào một datatable và xử lý nó theo từng hàng với các vòng lặp. Sau khi nhiệm vụ này hoàn thành, tôi kiểm tra giá trị của uvErrorEmailNeeded để xác định xem có bất cứ điều gì để gửi email bằng cách sử dụng một trình kết nối luồng xử lý có điều kiện hay không. Bạn cũng sẽ cần phải thêm một tham chiếu đến system.xml trong tập lệnh vb của bạn. Đây là trong SQL 2005.
Imports System
Imports System.Data
Imports System.Math
Imports Microsoft.SqlServer.Dts.Runtime
Imports System.Xml
Imports System.Data.OleDb
Public Class ScriptMain
Public Sub Main()
Dim oleDA As New OleDbDataAdapter
Dim dt As New DataTable
Dim col As DataColumn
Dim row As DataRow
Dim sMsg As String
Dim sHeader As String
oleDA.Fill(dt, Dts.Variables("uvErrorTable").Value)
If dt.Rows.Count > 0 Then
Dts.Variables("uvErrorEmailNeeded").Value = True
For Each col In dt.Columns
sHeader = sHeader & col.ColumnName & vbTab
Next
sHeader = sHeader & vbCrLf
For Each row In dt.Rows
For Each col In dt.Columns
sMsg = sMsg & row(col.Ordinal).ToString & vbTab
Next
sMsg = sMsg & vbCrLf
Next
Dts.Variables("uvMessageBody").Value = "Error task. Error list follows:" & vbCrLf & sHeader & sMsg & vbCrLf & vbCrLf
End If
Dts.TaskResult = Dts.Results.Success
End Sub
End Class
Dưới đây là mã tôi dùng để tải dữ liệu trong tác vụ C# script từ biến recordset hoặc resultset. "User :: transactionalRepDBs" là một biến SSIS của Object (System.Object) đã được tải thông qua một "tập hợp kết quả đầy đủ" từ một kịch bản lệnh thực thi SQL. This link assisted me.
using System.Data.OleDb;
DataTable dt= new DataTable();
OleDbDataAdapter adapter = new OleDbDataAdapter();
adapter.Fill(dt, Dts.Variables["User::transactionalRepDBs"].Value);
foreach (DataRow row in dt.Rows)
{
//insert what you want to do here
}
Một cách dễ dàng hơn tôi phát hiện (sử dụng C#) chỉ đơn giản là đúc các đối tượng như là một mảng chuỗi. Đây là cách mã C# của tôi trông như sau:
public void Main()
{
string[] arreglo = (string[])Dts.Variables["User::arreglo"].Value;
...
foreach (string elemento in arreglo)
{
// do stuff on each element of the array/collection
}
...
}
- 1. Cách truy cập biến gói ssis bên trong thành phần tập lệnh
- 2. Tác vụ Tập lệnh SSIS Nhận Tên Tệp và Lưu trữ vào Biến đối tượng SSIS
- 3. Truy cập biến trong tập lệnh bash
- 4. SSIS mất tham chiếu tệp khi mở tác vụ tập lệnh
- 5. SSIS, xuất ra null dưới dạng giá trị cột trong tác vụ tập lệnh
- 6. Sự kiện kích hoạt trong tác vụ tập lệnh
- 7. chrome.tabs.executeScript: Cách truy cập biến từ tập lệnh nội dung trong tập lệnh nền?
- 8. Truy cập Rake Tác vụ Mô tả từ bên trong Nhiệm vụ
- 9. Cách Thực thi Tập lệnh PowerShell từ SSIS
- 10. SSIS- Đặt nhiều biến thông qua một tác vụ SQL đơn
- 11. Làm cách nào để truy cập các biến môi trường trong tập lệnh Mong đợi?
- 12. Truy cập biến ngoài câu lệnh 'if'
- 13. Đặt mã Tác vụ Script động trong SSIS 2012
- 14. truy cập bên trong biến hàm trong Javascript
- 15. JavaScript: Truy cập Biến Defined trong External .js tập tin
- 16. Truy cập VBA: Cách kiểm tra xem recordSet có trống không? isNull?
- 17. truy cập vào biến trong lớp bên trong trong java
- 18. dịch vụ truy cập bên trong một lớp thông thường
- 19. Truy cập siêu dữ liệu Greasemonkey từ bên trong tập lệnh của bạn?
- 20. Cách truy cập biến javascript trong @ URL.Action()
- 21. Đối số truy cập vào tập lệnh Bash bên trong một hàm
- 22. Bạn có thể chạy tác vụ SSIS từ .net không?
- 23. Truy cập biến trong phạm vi bên ngoài?
- 24. biến truy cập của lớp bên ngoài trong Java
- 25. Truy cập Javascript lớp biến bên trong một hàm lớp
- 26. SSIS lỗi script nhiệm vụ lấy giá trị biến
- 27. Truy cập các biến toàn cầu trong một tập lệnh PHP riêng biệt?
- 28. Android: Truy cập Biến được chuyển đến dịch vụ
- 29. Recordset được trả lại bị đóng (mysql DB được truy cập thông qua ODBC trong VBA)
- 30. Cách truy cập trang Html mới từ tập lệnh PHP?