MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


    [Resolvido]Executar procedure no SQL Server

    maguim
    maguim
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 446
    Registrado : 15/05/2013

    [Resolvido]Executar procedure no SQL Server Empty [Resolvido]Executar procedure no SQL Server

    Mensagem  maguim em 17/7/2019, 14:50

    bom dia amigos !


    tudo bem ?


    eu vi alguns exemplo de como executar porem nenhum me atendeu, ai achei um outro fórum. porem esta dando tempo excedido


    codigo:
    Código:
    Dim conn As ADODB.Connection
    Dim cmd As ADODB.Command

       If Not IsNull(Me.motivo) = True Then  ' UPDATE PROGRAMAS
        If MsgBox("Confirma alteração?", vbQuestion + vbYesNo, "Alteração") = vbYes Then
        Set conn = New ADODB.Connection
        conn.ConnectionString = "DRIVER=SQL Server;Server=*******;UID=******;PWD=*****;Database=SGIP_TESTE;"
        conn.Open
        
        Set cmd = New ADODB.Command
        cmd.ActiveConnection = conn
        cmd.CommandType = adCmdStoredProc
        cmd.CommandText = "INSERT_MOT_JUST_CIC"
        
        cmd.Parameters.Append cmd.CreateParameter("@PROGRAMA", adInteger, adParamInput, 60, Me.motivo)
        cmd.Parameters.Append cmd.CreateParameter("@ID_GERAL", adInteger, adParamInput, 60, Forms!formhistorico!CODPASTA)
        cmd.Parameters.Append cmd.CreateParameter("@ID_PROGCONTR", adInteger, adParamInput, 60, Me.ID_GERAL)
        cmd.Parameters.Append cmd.CreateParameter("@RESP", adVarChar, adParamInput, 60, nathan)
        
        cmd.Execute
        conn.Close


    alguém usa algum código pra executar procedures direto de SQL SERVER?


    abraços


    Última edição por maguim em 21/7/2019, 22:47, editado 1 vez(es)


    .................................................................................
    O conhecimento é a Dadiva da Vida. Sem ele o que seriamos ?! Surprised
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 791
    Registrado : 13/12/2016

    [Resolvido]Executar procedure no SQL Server Empty Re: [Resolvido]Executar procedure no SQL Server

    Mensagem  Alexandre Fim em 17/7/2019, 15:06

    Olá Maguin,

    Você também pode executar desta maneira:

    Código:


    Sub GravaDados()
    On Error GoTo trata_erro
    Dim conn            As ADODB.Connection
    Dim cmd            As ADODB.Command
    Dim sSQL            As String
    Dim strUser        As String
       
        If Not IsNull(Me.motivo) = True Then  ' UPDATE PROGRAMAS
            If MsgBox("Confirma alteração?", vbQuestion + vbYesNo, "Alteração") = vbYes Then
                Set conn = New ADODB.Connection
                conn.ConnectionString = "DRIVER=SQL Server;Server=*******;UID=******;PWD=*****;Database=SGIP_TESTE;"
                conn.Open
       
                strUser = "nathan"
                           
                conn.BeginTrans 'Inicia a transação no BD
                sSQL = "EXEC INSERT_MOT_JUST_CIC "
                sSQL = sSQL & " " & Trim(Me.motivo) & ""
                sSQL = sSQL & ", " & Trim(Forms!formhistorico!CODPASTA) & ""
                sSQL = sSQL & ", " & Trim(Me.ID_GERAL) & ""
                sSQL = sSQL & ", '" & strUser & "'"
                conn.Execute sSQL
                conn.CommitTrans 'Efetiva a gravação dos dados
               
           
                conn.Close
            End If
        End If
               
        Exit Sub
    trata_erro:
        If conn.State = 1 Then
            conn.RollbackTrans 'Desfaz o comando de insert
        End If
        conn.Close
               
    End Sub



    Espero ter ajudado.

    Att,

    alexandre fim

    maguim
    maguim
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 446
    Registrado : 15/05/2013

    [Resolvido]Executar procedure no SQL Server Empty Re: [Resolvido]Executar procedure no SQL Server

    Mensagem  maguim em 17/7/2019, 17:35

    tem com tratar espaço interno?

    sei que trim trata as laterais, porem no meu caso (A CONTATAR)
    existe algum parâmetro que tarte esse espaço interno ?

    porque a PROC só roda se não tiver espaço interno.


    .................................................................................
    O conhecimento é a Dadiva da Vida. Sem ele o que seriamos ?! Surprised
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 791
    Registrado : 13/12/2016

    [Resolvido]Executar procedure no SQL Server Empty Re: [Resolvido]Executar procedure no SQL Server

    Mensagem  Alexandre Fim em 17/7/2019, 17:53

    Maguin,

    Mas o valor A CONTATAR é um parâmetro da proc?
    Se for, vc tem que passar esse parâmetro como texto, ou seja, 'A CONTATAR'

    Se possivel, poste aqui a procedure.

    Abs.


    .................................................................................
    "Aprender é a única coisa de que a mente nunca se cansa, nunca tem medo e nunca se arrepende." (Leonardo da Vinci)
    "O impossível existe até que alguém duvide dele e prove o contrário." (Albert Einstein)
    maguim
    maguim
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 446
    Registrado : 15/05/2013

    [Resolvido]Executar procedure no SQL Server Empty Re: [Resolvido]Executar procedure no SQL Server

    Mensagem  maguim em 17/7/2019, 18:47

    Segue:

    Código:
    ALTER PROCEDURE [dbo].[INSERT_MOT_JUST_CIC]

               @PROGRAMA TEXT,
             @ID_GERAL INT,
             @ID_PROGCONTR INT,
             @RESP VARCHAR(255)

    AS
    BEGIN

    DECLARE   @ID_MOTIVO INT

    UPDATE dbo.USPROGRAMAS_CIC
    SET
       MOTIVO = @PROGRAMA,
       ATUALIZACAO_MOTIVO = 'TRUE'

    WHERE ID_GERAL = @ID_GERAL

    INSERT INTO dbo.USCONTROLE_MOTIVO_CIC
    (ID_GERAL ,MOTIVO, DT_MOTIVO, ID_PROGCONTR, RESPONSAVEL, STRCOUNT)
    VALUES
    (@ID_GERAL, @PROGRAMA, GETDATE(), @ID_PROGCONTR, @RESP, '1')

    SET @ID_MOTIVO = (
                SELECT ID_C_MOTIVO
                FROM USCONTROLE_MOTIVO_CIC
                WHERE ID_GERAL = @ID_GERAL
                   )

    INSERT INTO USCONTROLE_JUST_CIC
    (ID_C_MOTIVO, ID_GERAL)
    VALUES
    (@ID_MOTIVO,@ID_GERAL)
    END


    .................................................................................
    O conhecimento é a Dadiva da Vida. Sem ele o que seriamos ?! Surprised
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 791
    Registrado : 13/12/2016

    [Resolvido]Executar procedure no SQL Server Empty Re: [Resolvido]Executar procedure no SQL Server

    Mensagem  Alexandre Fim em 17/7/2019, 18:57

    O parametro '@PROGRAMA' está declarado como TEXT e na instrução está como INT
    Está faltando o caracter apóstrofo.

    Código:


    sSQL = "EXEC INSERT_MOT_JUST_CIC "
    sSQL = sSQL & " '" & Trim(Me.motivo) & "' "
    sSQL = sSQL & ", " & Trim(Forms!formhistorico!CODPASTA) & ""
    sSQL = sSQL & ", " & Trim(Me.ID_GERAL) & ""
    sSQL = sSQL & ", '" & strUser & "'"
    conn.Execute sSQL


    Faça os testes e qualquer duvida retorne.

    []'s


    .................................................................................
    "Aprender é a única coisa de que a mente nunca se cansa, nunca tem medo e nunca se arrepende." (Leonardo da Vinci)
    "O impossível existe até que alguém duvide dele e prove o contrário." (Albert Einstein)
    maguim
    maguim
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 446
    Registrado : 15/05/2013

    [Resolvido]Executar procedure no SQL Server Empty Re: [Resolvido]Executar procedure no SQL Server

    Mensagem  maguim em 17/7/2019, 19:06

    Opaa!

    Resolvi!


    seria [] pra reconhecer

    Código:
    sSQL = sSQL & " [" & Trim(Me.motivo) & "]"


    e see fosse pra tratar na procedure?



    .................................................................................
    O conhecimento é a Dadiva da Vida. Sem ele o que seriamos ?! Surprised

    Conteúdo patrocinado

    [Resolvido]Executar procedure no SQL Server Empty Re: [Resolvido]Executar procedure no SQL Server

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 21/8/2019, 13:05