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.