Fórum Executar programas do servidor #15711

14/02/2010

0

Como eu posso executar programas no servidor usando asp.net2? Quero rodar um programa que faz dts no sqlserver.
Ademilso Peres

Ademilso Peres

Responder

Posts

18/02/2010

Luiz Maia

Ademilso,   Tem varias formas de invocar um DTS, uma delas é usando um Stored Procedure, do qual vc pode chamar o pacote DTS dirtetamente.   Outra, mais usada, é usando a dll dtspkg.dll, que deve ser registrada no servidor, isto pode causar alguns problemas, pois em HOSTS de hospedagem não sei te informar se ja existe esta DLL devidamente registrada.   Para isto, faça o seguinte: Copie a DLL dtspackage.dll para o servidor web e registre-a la. Adicione a referencia DTSPakhage  no VS.   Depois use o seguinte codigo (esta em VBnet):   Dim objDTS As New DTS.Package
Dim objStep As DTS.Step
Dim sSrc, sDsc As String
Dim dErr As Double

'Glb_SrvName = "Server"
'glb_username = "Admin"
'Glb_PassWd = "Admin123"

GetConnectionInfo()

'objDTS.DTSSQLStgFlag_Default
Dim obj As Object
obj = DTS.DTSSQLServerStorageFlags.DTSSQLStgFlag_Default


Try
objDTS.LoadFromSQLServer(Glb_SrvName, glb_username, Glb_PassWd, 0, , , , "DTSToExecute")

For Each objStep In objDTS.Steps
objStep.ExecuteInMainThread = True
Next
objDTS.Execute()

For Each objStep In objDTS.Steps
If objStep.ExecutionResult = DTS.DTSStepExecResult.DTSStepExecResult_Failure Then
objStep.GetExecutionErrorInfo(dErr, sSrc, sDsc)
Response.Write(sSrc & vbCrLf & sDsc)
End If
Next

objDTS = Nothing

lblMsg.Visible = True
lblMsg.Text = " Data Updated Successfully "
Catch ex As Exception
lblMsg.Visible = True
lblMsg.Text = ex.Message
Exit Sub
End Try     Abraços Qualquer duvida me diga, ok?   Att Luiz Maia
Responder

Gostei + 0

20/02/2010

Ademilso Peres

Talvez pra mim chamar via stored procedures seja mais facil. Mas tambem gostaria de saber se tem jeito de rodar qualquer programa por exemplo um notepad.
Responder

Gostei + 0

20/02/2010

Ademilso Peres

Como posso chamar via stored procedure?
Responder

Gostei + 0

21/02/2010

Luiz Maia

Ademilso, veja este exemplo abaixo:   IF EXISTS (SELECT * FROM sysobjects WHERE type = 'P' AND name = 'DtsRun')
      BEGIN
            PRINT 'Dropping Procedure DtsRun'
            DROP  Procedure  DtsRun
      END

GO

PRINT 'Creating Procedure DtsRun'
GO
CREATE Procedure DtsRun
      /* Param List */
      @ServerName      varchar(30),
      @UserName      varchar(30),
      @Password      varchar(30),
      @DtsName      varchar(30),
      @DtsPassword            varchar(30),
      @GlobleVariableList      varchar(500) --"/A <GlobalVariableName>:<datatypeid>=<GlobalVariableValue>"
      WITH ENCRYPTION      
AS

      DECLARE @ERROR int      -- For Hold Error Number
      DECLARE @CMD      varchar(1000)      -- Dts Run Command
      
BEGIN
      -- Set as No Error
      SET @ERROR = 0
      
      IF( @GlobleVariableList IS NULL )
      BEGIN
            -- Without Globle Variable
            SET @CMD = 'dtsrun /S '+@ServerName+' /U '+@UserName+' /P '+@Password+' /N '+@DtsName+' /M '+ @DtsPassword
      
      END
      ELSE
      BEGIN
            -- With Globle Variable
            SET @CMD = 'dtsrun /S '+@ServerName+' /U '+@UserName+' /P '+@Password+' /N '+@DtsName+' /M '+@DtsPassword+' '+@GlobleVariableList+''
            
      END
      
      EXECUTE @ERROR = master..xp_cmdshell @CMD
      -- + Error Checking
      SELECT @ERROR = COALESCE( NULLIF ( @ERROR, 0 ), @@ERROR )
      IF @ERROR <> 0 BEGIN ROLLBACK TRANSACTION RETURN @ERROR END
      
END
      -- Return Error
      RETURN @ERROR

GO

GRANT EXEC ON DtsRun TO PUBLIC

GO     Com esta SP acima (generica) vc consegue executar qualquer DTS passando os parametros necessarios, como nome do DTS, servidor, senha e usuario e tb parametros de entrada do DTS (GlobleVariableList).   Qualquer duvida, me avise, ok?   Aguardo Att LUiz Maia
Responder

Gostei + 0

26/02/2010

Ademilso Peres

E como eu poderia executar qualquer programa do servidor atraves do site? tem jeito? 
Responder

Gostei + 0

01/03/2010

Luiz Maia

Que tipo de programa você deseja executar no servidor? Se for um DTS mesmo, basta executar a SP abaixo que qual de passei.   Att Luiz Maia
Responder

Gostei + 0

04/03/2010

Luiz Maia

E ai, aguardo sua resposta....   Abraços Att Luiz Maia
Responder

Gostei + 0

08/03/2010

Ademilso Peres

Vou tentar dessa forma. 
Responder

Gostei + 0

08/03/2010

Luiz Maia

Ok. Fico no aguardo...   Abraços Att Luiz Maia
Responder

Gostei + 0

11/03/2010

Luiz Maia

E ai Ademilso, resolveu?   Aguardo...   Abraços Att Luiz Maia
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar