Ayuda con Paquetes DTS !!!

16/11/2004 - 23:10 por madrigal | Informe spam
Hola grupo, soy nuevo en .NET antes tenía mis módulos que ejecutaban paquetes
DTS en Visual Basic 6, sin embargo necesito ahora migrarlos a un ambiente
.NET. Pero NO TENGO NI IDEA de como hacerlo!!!. Alguien me podría decir si
hay alguna herramienta que ayude a hacerlo, o alguna página en donde exista
un ejemplo de cómo migrar hacia esta plataforma?
Agradezco de antemano su valiosa ayuda.
Enrique

Preguntas similare

Leer las respuestas

#1 Pedro Luna Montalvo, MVP
17/11/2004 - 03:14 | Informe spam
Saludos:

Te indico como invocas un paquete DTS desde VB.NET:

1. Agrega una referencia a tu proyecto de la libreria: "Microsoft DTSPackage
Object Library". En el dialogo de "Agregar referencias", buscalo en la ficha
"COM".

2. El siguiente codigo permite cargar y ejecutar un paquete:

Dim paquete As New DTS.Package2Class

paquete.LoadFromSQLServer("SERVIDOR-SQL", "usuario", "password", _
DTS.DTSSQLServerStorageFlags.DTSSQLStgFlag_Default, _
, , , "Nombre-Del-Paquete")

paquete.Execute()




Ademas, el siguiente enlace te puede ser util:
http://support.microsoft.com/Defaul...?kbid21525


Saludos
Pedro Luna, [MVP VB.NET]
Gye, Ecu
Respuesta Responder a este mensaje
#2 Jorge Serrano [MVP VB]
17/11/2004 - 07:59 | Informe spam
Hola madrigal,

además de lo que acertamente te ha indicado Pedro, te recuerdo (por si
acaso) que a nivel de DTS, el comportamiento de la capa correspondiente, no
debe ser modificada en absoluto.

Yo por mi parte, contribuyo con estos otros enlaces para tu información:
http://www.sqldts.com/default.aspx?264
http://www.sqldts.com/default.aspx?265

Un saludo,

Jorge Serrano
MVP VB.NET


"Pedro Luna Montalvo, MVP" wrote:

Saludos:

Te indico como invocas un paquete DTS desde VB.NET:

1. Agrega una referencia a tu proyecto de la libreria: "Microsoft DTSPackage
Object Library". En el dialogo de "Agregar referencias", buscalo en la ficha
"COM".

2. El siguiente codigo permite cargar y ejecutar un paquete:

Dim paquete As New DTS.Package2Class

paquete.LoadFromSQLServer("SERVIDOR-SQL", "usuario", "password", _
DTS.DTSSQLServerStorageFlags.DTSSQLStgFlag_Default, _
, , , "Nombre-Del-Paquete")

paquete.Execute()




Ademas, el siguiente enlace te puede ser util:
http://support.microsoft.com/Defaul...?kbid21525


Saludos
Pedro Luna, [MVP VB.NET]
Gye, Ecu



Respuesta Responder a este mensaje
#3 SqlRanger
17/11/2004 - 12:26 | Informe spam
Próximamente voy a dar un webcast libre de hora y media de duración por
parte de Solid Quality Learning a cerca precisamente de eso.

Si quieres te podría enviar el borrador de las presentaciones de Power Point
y el código de ejemplo que tengo preparado para ese web cast si me escribes
a la dirección de correo:

Saludos:

Jesús López
MVP
www.solidqualitylearning.com


"madrigal" escribió en el mensaje
news:
Hola grupo, soy nuevo en .NET antes tenía mis módulos que ejecutaban


paquetes
DTS en Visual Basic 6, sin embargo necesito ahora migrarlos a un ambiente
.NET. Pero NO TENGO NI IDEA de como hacerlo!!!. Alguien me podría decir si
hay alguna herramienta que ayude a hacerlo, o alguna página en donde


exista
un ejemplo de cómo migrar hacia esta plataforma?
Agradezco de antemano su valiosa ayuda.
Enrique
Respuesta Responder a este mensaje
#4 madrigal
18/11/2004 - 16:24 | Informe spam
Muchas gracias a todos. Con su ayuda he conseguido hacer funcionar mi código
de VB6 de paquetes DTS en VB.NET. Ahora paso a otra funcionalidad de mi
aplicación. Ya que esta aplicación será utilizada por varios usuarios, cómo
hago para saber que algún usuario está ejecutando el paquete DTS y como
consecuencia está cargando datos a la tabla involucrada en el paquete. Para
que si algún otro usuario intenta ejecutar al mismo tiempo el paquete DTS, no
le permita hacerlo y le pueda enviar la aplicación un mensaje diciendo que
"espere un momento los datos están siendo cargados."
Nuevamente les agradezco desde ahora su vaiosa ayuda.
madrigal.


"madrigal" escribió:

Hola grupo, soy nuevo en .NET antes tenía mis módulos que ejecutaban paquetes
DTS en Visual Basic 6, sin embargo necesito ahora migrarlos a un ambiente
.NET. Pero NO TENGO NI IDEA de como hacerlo!!!. Alguien me podría decir si
hay alguna herramienta que ayude a hacerlo, o alguna página en donde exista
un ejemplo de cómo migrar hacia esta plataforma?
Agradezco de antemano su valiosa ayuda.
Enrique
Respuesta Responder a este mensaje
#5 SqlRanger
19/11/2004 - 11:56 | Informe spam
Podrías utilizar bloqueos de aplicación de SQL Server 2000 para eso que
quieres. En SQL Server 2000 hay dos procedimientos almacenados:
sp_getapplock y sp_releaseapplock que sirven para gestionar bloqueos de
aplicación:

La técnica sería así:

1 Intentar obtener un bloqueo exclusivo en un recuso de aplicación definido
por el usuario

2 Si no se ha podido obtener el bloqueo porque otro usuario ya lo tiene,
entonces avisar al usuario de que otro usuario ya está cargando los datos

3 Si se ha obtenido el bloqueo entonces cargar los datos ejecutando el
paquete DTS

4 Liberar el bloqueo en caso de haberlo obtenido

Aquí tienes el código de ejemplo que hace esto mismo:

Private Sub btnEjecutarProceso_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles btnEjecutarProceso.Click
Dim cn As New SqlConnection("data
source=InstanciaSqlServer;Integrated Security=sspi;initial catalog=master")
Dim BloqueoObtenido As Boolean = False
Try
cn.Open()
' PaquteDTS es el recurso de aplicación definido por el usuario
BloqueoObtenido = ObtenerBloqueo(cn, "PaqueteDTS")
If Not BloqueoObtenido Then
MsgBox("No se pueden importar los datos porque ya lo está
haciendo ahora otro usuario", MsgBoxStyle.Exclamation)
Return
End If
EjecutarPaqueteDTS()
MsgBox("Paquete ejecutado correctamente",
MsgBoxStyle.Information)
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "Error inesperado")
Finally
If cn.State = ConnectionState.Open Then
If BloqueoObtenido Then LiberarBloqueo(cn, "PaqueteDTS")
cn.Close()
End If
End Try

End Sub

Public Sub EjecutarPaqueteDTS()
' Simular la ejecución del paquete esperando 2 segundos
System.Threading.Thread.CurrentThread.Sleep(2000)
End Sub

Public Function ObtenerBloqueo(ByVal cn As SqlClient.SqlConnection,
ByVal Recurso As String) As Boolean
Dim cmd As New SqlCommand("sp_getapplock", cn)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.Add("@Resource", Recurso)
cmd.Parameters.Add("@LockMode", "Exclusive")
cmd.Parameters.Add("@LockOwner", "Session")
cmd.Parameters.Add("@LockTimeout", 20)
cmd.Parameters.Add("@RETURN_VALUE", SqlDbType.Int).Direction ParameterDirection.ReturnValue
cmd.ExecuteNonQuery()
If cmd.Parameters("@RETURN_VALUE").Value = 0 Then
Return True
Else
Return False
End If
End Function

Public Sub LiberarBloqueo(ByVal cn As SqlConnection, ByVal Recurso As
String)
Dim cmd As New SqlCommand("sp_releaseapplock", cn)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.Add("@Resource", Recurso)
cmd.Parameters.Add("@LockOwner", "Session")
cmd.ExecuteNonQuery()
End Sub

Por cierto, no me has escrito pidiéndome las presentaciones y el código para
ejecutar paquetes DTS desde VB.NET, imagino que será porque no te interesa
debido a que con lo que te han dicho los compañeros te es suficiente. Sin
embargo, la ejecución de paquetes DTS no es sólo la ejecución básica, son
muchas más cosas:

Evitar bloqueo del interfaz de usuario
Ejecutar paquete en segundo plano
responder a eventos
etc.

Saludos:

Jesús López
MVP
Mentor Asociado Solid Quality Learning
www.solidqualitylearning.com







"madrigal" escribió en el mensaje
news:
Muchas gracias a todos. Con su ayuda he conseguido hacer funcionar mi


código
de VB6 de paquetes DTS en VB.NET. Ahora paso a otra funcionalidad de mi
aplicación. Ya que esta aplicación será utilizada por varios usuarios,


cómo
hago para saber que algún usuario está ejecutando el paquete DTS y como
consecuencia está cargando datos a la tabla involucrada en el paquete.


Para
que si algún otro usuario intenta ejecutar al mismo tiempo el paquete DTS,


no
le permita hacerlo y le pueda enviar la aplicación un mensaje diciendo que
"espere un momento los datos están siendo cargados."
Nuevamente les agradezco desde ahora su vaiosa ayuda.
madrigal.


"madrigal" escribió:

> Hola grupo, soy nuevo en .NET antes tenía mis módulos que ejecutaban


paquetes
> DTS en Visual Basic 6, sin embargo necesito ahora migrarlos a un


ambiente
> .NET. Pero NO TENGO NI IDEA de como hacerlo!!!. Alguien me podría decir


si
> hay alguna herramienta que ayude a hacerlo, o alguna página en donde


exista
> un ejemplo de cómo migrar hacia esta plataforma?
> Agradezco de antemano su valiosa ayuda.
> Enrique
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida