Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/07/2013, 03:54
jose_cab
 
Fecha de Ingreso: noviembre-2008
Ubicación: Barcelona
Mensajes: 52
Antigüedad: 16 años
Puntos: 0
Pregunta Convertir datos DT_TEXT en DT_WSTR en un SSIS SQL2012 (Sin suicidarse)

Hola,
Estoy cambiando los servidores en la empresa y traspasando a mano unos DTS de SQL 2000, que leen datos de VisualFoxpro, los modifican y los dejan en las tablas del nuevo SQL 2012.

Todo funciona de maravilla pero encuentro problemas con los campos de flujo de datos DT-TEXT y que tengo que dejar al tipo string. (En los DTS de SQL 2000 no había problemas ya que los trataba como cadenas. Se le podía hacer un Trim, Mid, etc…)

Para crear los SSIS utilizo VStudio 2010

En uno de mis dtsx tengo un script de transformación que me hace varias cosas, con las otras columnas y perfecto, pero con una columna del tipo DT_TEXT no funciona.

En el Editor de transformación de scrip, tengo:

- Una columna de entrada que me la entrega un OBDC que lee VisualFoxpro llamada www con DataType DT_TEXT (Flujo de datos de texto)
- Una columna de salida llamada splazoent con Datatype cadena Unicode DT_WSTR y longitud 10 caracteres

La idea es coger los datos de www que como mucho miden 8 caracteres y hacerle un Trim, para dejarlo en la columna splazoent. Así de simple.

Este es el script creado en Visual Basic

Código:
   Public Overrides Sub Entrada0_ProcessInputRow(ByVal Row As Entrada0Buffer)
        '
        ' Recoge datos DT_TEXT y los convierte en cadena STRING
        '
        Dim tx_plazo As String = _
        System.Text.Encoding.Unicode.GetString(Row.www.GetBlobData(0, CInt(Row.www.Length)))

        If tx_plazo.Trim.Length > 0 Then
            Row.splazoent = tx_plazo.Trim

        End If
    End Sub
Pero al iniciar la depuración desde Visual Studio me dice que los datos son muy grandes para el buffer.
Luego al modificar algo, se queda el script marcado con el error y me dice que “No se encuentra el código binario para el script, que abra el editor y lo modifique

No sé. He mirado por google, etc… pero no encuentro nada en ningún sitio.
Me estoy volviendo loco porque llevo con esto más de una semana y no consigo solucionarlo, para poder cambiar ya los servidores.

Espero vuestra yuda.