MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

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 : 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 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 : Respeito às Regras 100%

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

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

    Mensagem  Alexandre Fim 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 : 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 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 : Respeito às Regras 100%

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

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

    Mensagem  Alexandre Fim 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.


    .................................................................................
    - Procure sempre anexar seu projeto para análise do problema/dúvida.
    - Ao copiar/colar um código VBA, procure entender seu funcionamento.
    - Se o problema foi resolvido, não se esqueça de marcar o tópico como RESOLVIDO.
    maguim
    maguim
    Avançado
    Avançado

    Respeito às regras : 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 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 : Respeito às Regras 100%

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

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

    Mensagem  Alexandre Fim 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


    .................................................................................
    - Procure sempre anexar seu projeto para análise do problema/dúvida.
    - Ao copiar/colar um código VBA, procure entender seu funcionamento.
    - Se o problema foi resolvido, não se esqueça de marcar o tópico como RESOLVIDO.
    maguim
    maguim
    Avançado
    Avançado

    Respeito às regras : 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 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

      Data/hora atual: 25/7/2021, 03:57