Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Dts, ayuda!!!

Estas en el tema de Dts, ayuda!!! en el foro de SQL Server en Foros del Web. Tengo el siguiente problema hice un DTS que transfiere información del servidor 1 al servidor 2, mediante la transacción de un activeX copio la información ...
  #1 (permalink)  
Antiguo 14/07/2006, 11:06
 
Fecha de Ingreso: diciembre-2003
Mensajes: 18
Antigüedad: 20 años, 4 meses
Puntos: 0
Dts, ayuda!!!

Tengo el siguiente problema
hice un DTS que transfiere información del servidor 1 al servidor 2, mediante la transacción de un activeX copio la información , primero determinando si el campo que quiero existe en la tabla destino , si es así actualizo, si no inserto.
Funciona perfecto la primera vez, pero la segunda me marca el siguiente error

Ejecución iniciada: 14/07/2006 11:41:04 AM
Error en el destino para el número de fila 110. Errores encontrados hasta ahora en esta tarea: 1.
Ejecución completada: 14/07/2006 11:41:07 AM

este numero de fila es el último a insertar invariablemente, me imagino que se hace bolas al no encontrar mas registros pero no me explico porque la primera vez lo hace correctamente.
Les publico el código del activeX para ser mas claro

Function Main()


If (IsEmpty(DTSLookups("Lookup").Execute(DTSSource("C ampo1")))) Then
Main = DTSTransformStat_InsertQuery


Else
Main = DTSTransformStat_UpdateQuery

End If



DTSDestination("Campo1") = DTSSource("Campo1")
DTSDestination("Campo2") = DTSSource("Campo2")
DTSDestination("Campo3") = DTSSource("Campo3")
DTSDestination("Campo4") = DTSSource("Campo4")
DTSDestination("Campo5") = DTSSource("Campo5")
DTSDestination("Campo6") = DTSSource("Campo6")
DTSDestination("Campo7") = DTSSource("Campo7")


Main = DTSTransformStat_OK



End Function
  #2 (permalink)  
Antiguo 17/07/2006, 11:42
 
Fecha de Ingreso: diciembre-2003
Mensajes: 18
Antigüedad: 20 años, 4 meses
Puntos: 0
por fin encontre la solución, la pongo para que si alguien algún día tiene el mismo problema no batalle tanto como yo :P


Function Main()

Main = DTSTransformStat_InsertQuery
'If (IsEmpty(DTSLookups("Lookup").Execute(DTSSource("C ampo1")))) Then
If NOT (IsEmpty(DTSLookups("Lookup").Execute(DTSSource("C ampo1")))) Then
'Main = DTSTransformStat_InsertQuery
DTSLookups("DEL").Execute(DTSSource("C ampo1")

'Else
'Main = DTSTransformStat_UpdateQuery

End If



DTSDestination("Campo1") = DTSSource("Campo1")
DTSDestination("Campo2") = DTSSource("Campo2")
DTSDestination("Campo3") = DTSSource("Campo3")
DTSDestination("Campo4") = DTSSource("Campo4")
DTSDestination("Campo5") = DTSSource("Campo5")
DTSDestination("Campo6") = DTSSource("Campo6")
DTSDestination("Campo7") = DTSSource("Campo7")


Main = DTSTransformStat_OK

Donde DTSLookups("DEL").Execute(DTSSource("Campo1")
elimina el registro actual, al parecer SQL Server se hace bolas cuando actualiza el campo y al eliminarlo lo inserta sin problemas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:10.