4 Replies Latest reply: Jul 4, 2014 10:39 AM by Clever Anjos RSS

    Macro - Input dados Oracle

    Favio Baliana

      Pessoal, bom dia!

       

      ESTOU COM UMA Dúvida e Caso JÁ tenham Passado POR ISSO e puderem me ajudar ficarei Agradecido.

      Foi criado uma macro para inserir registros no oracle, ao executar no servidor os dados são inseridos com sucesso,

      porem ao acessar na aplicação estação de trabalho da erro.

       

      Segue abaixo:

      QlikOcx

      Analise da macro falhou, Funcionalidade foi perdida

      Oracle

      Erro. As configurações de segurança deste computador proibem o acesso a uma fonte de dados em outro domínio.

       

      Saberiam me dizer como resolver?

      Desde já agradeço pela atenção.

      Flávio

        • Re: Macro - Input dados Oracle
          Clever Anjos

          Poderia postar aqui o código da macro?

            • Re: Macro - Input dados Oracle
              Clever Anjos

              Baliana,

              Deletei o documento que você criou com o mesmo assunto e vou manter esse aqui aberto.


                • Re: Macro - Input dados Oracle
                  Favio Baliana

                  Pessoal segue script

                  sub oracle

                  set db = CreateObject("ADODB.Connection")

                   

                   

                  vJust=ActiveDocument.Variables("v_Just").GetContent.String

                  vobs=ActiveDocument.Variables("v_Rec").GetContent.String

                  vHoje=ActiveDocument.Variables("vHoje").GetContent.String

                  vSeq=ActiveDocument.Variables("vMax_Seq").GetContent.String

                  vNumI=ActiveDocument.Variables("v_Num_Ind").GetContent.String

                  usuario=ActiveDocument.Variables("usuario").GetContent.String

                  vDtRef=ActiveDocument.Variables("sDtReferencia").GetContent.String

                   

                   

                  db.open "DSN=DWPRD;UID=*;PWD=*"

                   

                   

                   

                   

                  'SQL = "UPDATE DWADM.REL_BSC_ANALISES SET JUSTIFICATIVA = " & vJust & ",RECOMENDACAO = " & vobs & " WHERE INDICADOR = " & vNumI &" AND SEQUENCIAL ="& vSeq+1 &";"

                  'MSGBOX SQL

                   

                   

                  'SQLDEL = "DELETE FROM DWADM.REL_BSC_ANALISES WHERE INDICADOR = " & vNumI &" AND SEQUENCIAL ="& vSeq+1 &";"

                  'MSGBOX SQLDEL

                  'DELETE'

                  'set Orderfile = db.execute("DELETE FROM DWADM.REL_BSC_ANALISES WHERE INDICADOR = " & vNumI &" AND SEQUENCIAL ="& vSeq+1 &";")

                   

                   

                  'UPDATE

                  'set Orderfile = db.execute("UPDATE DWADM.REL_BSC_ANALISES SET JUSTIFICATIVA = " & vJust & ",RECOMENDACAO = " & vobs & " WHERE INDICADOR = " & vNumI &" AND SEQUENCIAL ="& vSeq+1 &";")

                   

                   

                  'INSERT

                  set Orderfile = db.execute("INSERT INTO DWADM.REL_BSC_ANALISES (INDICADOR,R_TIMESTAMP,DATA_REFERENCIA,JUSTIFICATIVA, RECOMENDACAO,SEQUENCIAL,ALTERADO_POR) VALUES ("& vNumI & ",TO_DATE( '"& vHoje & "','DD/MM/YYYY HH24:MI:SS'"&")," & "TO_DATE( '"& vDtRef & "','DD/MM/YYYY'"&"),'" & vJust & "','" & vobs & "'," & vSeq+1 & ",'" & usuario &"');")

                   

                   

                  set Orderfile = db.execute("COMMIT;")

                   

                   

                      set v = ActiveDocument.Variables("v_Just")

                       v.SetContent "",true

                    set v = ActiveDocument.Variables("v_Rec")

                       v.SetContent "",true

                  db.Close

                  msgbox "Registro Realizado com Sucesso!"

                  ActiveDocument.Reload

                   

                   

                   

                   

                  end sub

                    • Re: Macro - Input dados Oracle
                      Clever Anjos

                      Baliana,

                      Esse código abaixo tentará abrir uma conexão partindo da máquina do usuário.

                      set db = CreateObject("ADODB.Connection")

                      Verifique se na máquina que está testando possui o Oracle Client instalado e funcionando.

                      Procurei também na base da Microsoft e encontrei a explicação abaixo:

                      "Configurações de segurança neste computador proíbem acessar fonte de dados em outro domínio" Erro

                      Este erro é causado por configurações de domínio cruzado no computador local e ocorre quando não é permitido o acesso de dados entre domínios. Observe que "domínio" refere-se ao domínio de Internet/Intranet e não ao domínio de rede.


                      De qualquer forma, recomendo fortemente que você reveja essa arquitetura. Se for imprescindível que o usuário do QlikView altere a base de dados, faça isso utilizando  um webservice (aqui na comunidade procure por uma extension que manda os dados para um WS que faria o acesso ao seu Oracle)