¿Cómo se accede a una variable RecordSet dentro de una tarea de secuencia de comandos?SSIS: cómo acceder a una variable RecordSet dentro de una tarea de secuencia de comandos
Respuesta
En la pestaña del script, asegúrese de poner la variable en los cuadros de texto readonlyvariables o readwritevariables.
Aquí hay un script simple que utilizo para formatear los errores en un flujo de datos (guardado en una variable RecordSet) en el cuerpo de un correo electrónico. Básicamente, leo el conjunto de registros varialbe en una tabla de datos y lo proceso fila por fila con los bucles for. Una vez completada esta tarea, examino el valor de uvErrorEmailNeeded para determinar si hay algo que enviar por correo electrónico utilizando un conector de flujo de proceso condicional. También deberá agregar una referencia a system.xml en su script vb. Esto es en 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
enumera a continuación está el código que utiliza para cargar una tabla de datos en una tarea de secuencia de comandos de C# de una variable de conjunto de registros o de resultados. "Usuario :: transactionalRepDBs" es una variable SSIS de Object (System.Object) que se cargó mediante un "Conjunto de resultados completo" desde un script de ejecución de tarea 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
}
Una forma más fácil que encontré (usando C#) es simplemente echando el objeto como una matriz de cadenas. Así es como mi código C# se ve ahora:
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. Tarea de secuencia de comandos de SSIS Obtener nombres de archivo y almacenar en una variable de objeto SSIS
- 2. SSIS, salida nula como un valor de la columna dentro de una tarea de la escritura
- 3. ¿Cómo pasar un parámetro bash a una secuencia de comandos python en una tarea cron?
- 4. ¿Cómo acceder a una variable global de Python desde C?
- 5. ¿Cómo puedo acceder a la última identificación de fila insertada dentro de una secuencia de comandos SQL?
- 6. Invocar una segunda secuencia de comandos con argumentos de una secuencia de comandos
- 7. Drupal: ¿cómo acceder a las API de Drupal con una secuencia de comandos php independiente?
- 8. ¿Debería acceder a una variable dentro de la misma clase a través de una propiedad?
- 9. Argumentos de acceso a la secuencia de comandos Bash dentro de una función
- 10. Cómo acceder a la variable de JavaScript dentro de @ URL.Action()
- 11. Acceder al XML de la solicitud en una secuencia de comandos de respuesta simulada SOAP UI
- 12. SSIS: ¿Cómo deshabilitar la tarea?
- 13. Cómo ejecutar una magia de IPython desde una secuencia de comandos (o cronometrar una secuencia de comandos de Python)
- 14. ¿Puedo acceder a los datos de una secuencia de comandos requerida en Ruby?
- 15. Acceder a una variable fuera de una instrucción 'if'
- 16. Cómo acceder a una variable de entorno fiesta desde dentro de R en emacs-ess
- 17. ¿Se puede ejecutar una tarea de SSIS desde .net?
- 18. ¿Puede una secuencia de comandos python cambiar persistentemente una variable de entorno de Windows? (elegantemente)
- 19. Acceder a una función dentro de una función (función anidada?)
- 20. jQuery.getJSON dentro de una secuencia de comandos de usuario de greasemonkey
- 21. awk: configuración de las variables de entorno directamente desde dentro de una secuencia de comandos awk
- 22. Cómo llama a varias secuencias de comandos de MSBuild desde una secuencia de comandos de MSBuild
- 23. Error inexplicable en bash: el comando printf dentro de una secuencia de comandos devuelve "número inválido"
- 24. Error de segmentación al acceder a una variable de instancia (firstprivate implícita) a través de la tarea de Openmp
- 25. SSIS pierde referencia de archivo al abrir tarea Script
- 26. Dando a la etiqueta de secuencia de comandos una ID
- 27. Hacer una secuencia de comandos de Python Orientado a objetos
- 28. ¿Cómo puedo acceder a hashes dentro de una matriz?
- 29. Cambiar a sudo usuario dentro de una secuencia de comandos python
- 30. Ejecutar una secuencia de comandos utilizando ISQL