Duda con ActiveX en DTS

08/12/2004 - 17:59 por Pablo | Informe spam
Estoy haciendo una prueba con un paquete DTS pero no me funciona
correctamente.
Solo quiero copiar tres campos de la tabla Employees a texto pero solo de
aquellos que son de USA.
Para ello, especifico una transformación con un activeX que es el siguiente:

Function Main()
if DTSSource("Country") = "USA" then
DTSDestination("Country") = DTSSource("Country")
DTSDestination("FirstName") = DTSSource("FirstName")
DTSDestination("LastName") = DTSSource("LastName")
else
Main = DTSTransfomrStat_SkipRow
end if
Main = DTSTransformStat_OK
End Function


El problema es que para los clientes que no son de USA me crea entradas con
todos los campos en
blanco a pesar de que le digo que se salte la línea.

¿Cómo lo puedo solucionar?
Gracias

Preguntas similare

Leer las respuestas

#1 Gustavo Larriera [MVP]
08/12/2004 - 18:25 | Informe spam
Function Main()
if DTSSource("Country") = "USA" then
DTSDestination("Country") = DTSSource("Country")
DTSDestination("FirstName") = DTSSource("FirstName")
DTSDestination("LastName") = DTSSource("LastName")
Main = DTSTransformStat_OK
else
Main = DTSTransfomrStat_SkipRow
end if

End Function


Gustavo Larriera, MVP
Uruguay LatAm
http://sqljunkies.com/weblog/gux/
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and confers
no rights.
"Pablo" wrote in message
news:
Estoy haciendo una prueba con un paquete DTS pero no me funciona
correctamente.
Solo quiero copiar tres campos de la tabla Employees a texto pero solo de
aquellos que son de USA.
Para ello, especifico una transformación con un activeX que es el
siguiente:

Function Main()
if DTSSource("Country") = "USA" then
DTSDestination("Country") = DTSSource("Country")
DTSDestination("FirstName") = DTSSource("FirstName")
DTSDestination("LastName") = DTSSource("LastName")
else
Main = DTSTransfomrStat_SkipRow
end if
Main = DTSTransformStat_OK
End Function


El problema es que para los clientes que no son de USA me crea entradas
con todos los campos en
blanco a pesar de que le digo que se salte la línea.

¿Cómo lo puedo solucionar?
Gracias

Respuesta Responder a este mensaje
#2 Pablo
08/12/2004 - 18:50 | Informe spam
Ya lo había probado así pero me da el siguiente error:
"Servidor de transformación Active Script 'DTSTransformation__1': la función
de secuencia de comandos 'Main' devolvió un valor de DTSTransformStatus no
válido, o bien una secuencia de comandos ActiveX no devolvió un tipo
integral. DataPump no trabajará más.

Además la transformación se detiene según encuentra un dato de un cliente
que no es de 'USA'

"Gustavo Larriera [MVP]" escribió en el mensaje
news:
Function Main()
if DTSSource("Country") = "USA" then
DTSDestination("Country") = DTSSource("Country")
DTSDestination("FirstName") = DTSSource("FirstName")
DTSDestination("LastName") = DTSSource("LastName")
Main = DTSTransformStat_OK
else
Main = DTSTransfomrStat_SkipRow
end if

End Function


Gustavo Larriera, MVP
Uruguay LatAm
http://sqljunkies.com/weblog/gux/
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and confers
no rights.
"Pablo" wrote in message
news:
Estoy haciendo una prueba con un paquete DTS pero no me funciona
correctamente.
Solo quiero copiar tres campos de la tabla Employees a texto pero solo de
aquellos que son de USA.
Para ello, especifico una transformación con un activeX que es el
siguiente:

Function Main()
if DTSSource("Country") = "USA" then
DTSDestination("Country") = DTSSource("Country")
DTSDestination("FirstName") = DTSSource("FirstName")
DTSDestination("LastName") = DTSSource("LastName")
else
Main = DTSTransfomrStat_SkipRow
end if
Main = DTSTransformStat_OK
End Function


El problema es que para los clientes que no son de USA me crea entradas
con todos los campos en
blanco a pesar de que le digo que se salte la línea.

¿Cómo lo puedo solucionar?
Gracias





Respuesta Responder a este mensaje
#3 Pablo
08/12/2004 - 18:58 | Informe spam
Encontré la solución: en la segunda rama del else, el mensaje a devolver es
Main = DTSTransfomrStat_SkipRowInfo en lugar de Main =
DTSTransfomrStat_SkipRow


Gracias.

"Pablo" escribió en el mensaje
news:%
Ya lo había probado así pero me da el siguiente error:
"Servidor de transformación Active Script 'DTSTransformation__1': la
función de secuencia de comandos 'Main' devolvió un valor de
DTSTransformStatus no válido, o bien una secuencia de comandos ActiveX no
devolvió un tipo integral. DataPump no trabajará más.

Además la transformación se detiene según encuentra un dato de un cliente
que no es de 'USA'

"Gustavo Larriera [MVP]" escribió en el mensaje
news:
Function Main()
if DTSSource("Country") = "USA" then
DTSDestination("Country") = DTSSource("Country")
DTSDestination("FirstName") = DTSSource("FirstName")
DTSDestination("LastName") = DTSSource("LastName")
Main = DTSTransformStat_OK
else
Main = DTSTransfomrStat_SkipRow
end if

End Function


Gustavo Larriera, MVP
Uruguay LatAm
http://sqljunkies.com/weblog/gux/
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and
confers no rights.
"Pablo" wrote in message
news:
Estoy haciendo una prueba con un paquete DTS pero no me funciona
correctamente.
Solo quiero copiar tres campos de la tabla Employees a texto pero solo
de aquellos que son de USA.
Para ello, especifico una transformación con un activeX que es el
siguiente:

Function Main()
if DTSSource("Country") = "USA" then
DTSDestination("Country") = DTSSource("Country")
DTSDestination("FirstName") = DTSSource("FirstName")
DTSDestination("LastName") = DTSSource("LastName")
else
Main = DTSTransfomrStat_SkipRow
end if
Main = DTSTransformStat_OK
End Function


El problema es que para los clientes que no son de USA me crea entradas
con todos los campos en
blanco a pesar de que le digo que se salte la línea.

¿Cómo lo puedo solucionar?
Gracias









Respuesta Responder a este mensaje
#4 Gustavo Larriera [MVP]
08/12/2004 - 19:00 | Informe spam
Revisa que no tienes errores sintácticos en los valores que asignas a Main.
Observo que escribiste "Main = DTSTransfomrStat_SkipRow" en vez de lo
correcto "Main = DTSTransformStat_SkipRow"

Gustavo Larriera, MVP
Uruguay LatAm
http://sqljunkies.com/weblog/gux/
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and confers
no rights.
"Pablo" wrote in message
news:%
Ya lo había probado así pero me da el siguiente error:
"Servidor de transformación Active Script 'DTSTransformation__1': la
función de secuencia de comandos 'Main' devolvió un valor de
DTSTransformStatus no válido, o bien una secuencia de comandos ActiveX no
devolvió un tipo integral. DataPump no trabajará más.

Además la transformación se detiene según encuentra un dato de un cliente
que no es de 'USA'

"Gustavo Larriera [MVP]" escribió en el mensaje
news:
Function Main()
if DTSSource("Country") = "USA" then
DTSDestination("Country") = DTSSource("Country")
DTSDestination("FirstName") = DTSSource("FirstName")
DTSDestination("LastName") = DTSSource("LastName")
Main = DTSTransformStat_OK
else
Main = DTSTransfomrStat_SkipRow
end if

End Function


Gustavo Larriera, MVP
Uruguay LatAm
http://sqljunkies.com/weblog/gux/
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and
confers no rights.
"Pablo" wrote in message
news:
Estoy haciendo una prueba con un paquete DTS pero no me funciona
correctamente.
Solo quiero copiar tres campos de la tabla Employees a texto pero solo
de aquellos que son de USA.
Para ello, especifico una transformación con un activeX que es el
siguiente:

Function Main()
if DTSSource("Country") = "USA" then
DTSDestination("Country") = DTSSource("Country")
DTSDestination("FirstName") = DTSSource("FirstName")
DTSDestination("LastName") = DTSSource("LastName")
else
Main = DTSTransfomrStat_SkipRow
end if
Main = DTSTransformStat_OK
End Function


El problema es que para los clientes que no son de USA me crea entradas
con todos los campos en
blanco a pesar de que le digo que se salte la línea.

¿Cómo lo puedo solucionar?
Gracias









email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida