Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Macro - Input dados Oracle

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

Labels (2)
4 Replies
Clever_Anjos
Employee
Employee

Poderia postar aqui o código da macro?

Clever_Anjos
Employee
Employee

Baliana,

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


Not applicable
Author

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

Clever_Anjos
Employee
Employee

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)