Página 1 de 1

Como executar um arquivo .UDL de 32 bits em um SO 64 bits

Enviado: 07 Ago 2015 00:44
por alxsts
Olá!

UDL (*.udl) - Data Link Files
Como executar um arquivo .UDL de 32 bits em um sistema operacional de 64 bits

Por Chaitanya Medikonduri - Microsoft Corporation

Uma vez que criamos um arquivo com extensão .UDL e o executamos em um sistema operacional de 64 bits, serão listados todos os provedores OLE DB de 64 bits instalados na máquina. A razão por trás disto é simples. Quando você dá um duplo clique no arquivo .UDL em uma máquina 64 bits, serão enumerados apenas os provedores de 64 bits instalados e se tivermos provedores OLE DB de 32 bits, não conseguiremos enxergá-los na lista.

Crie um arquivo .UDL com o nome test.udl no caminho C:\.

Quando tivermos criado o arquivo .UDL e tentarmos abrí-lo em uma máquina de 64 bits, o seguinte comando será executado através de

Código: Selecionar todos

C:\windows\system32\rundll32.exe: "C:\Program Files\Common Files\System\Ole DB\oledb32.dll",OpenDSLFile  C:\test.udl
Aqui, tanto Oledb32.dll e rundll32.exe são de 64 bits e não listarão as Dlls de 32bits.

Então, como executar o arquivo .UDL que lista as Dlls de 32 bits?

Podemos encontrar a versão 32 bits de Oledb32.dll no caminho C:\Program Files (x86)\Common Files\System\Ole DB e a versão 32 bits de rundll32.exe em C:\WINDOWS\SysWOW64.

Precisaremos executar o comando abaixo a partir de uma linha de comando ou Start/Run:

Código: Selecionar todos

C:\Windows\syswow64\rundll32.exe "C:\Program Files (x86)\Common Files\System\Ole DB\oledb32.dll",OpenDSLFile C:\test.udl
Verifique os caminhos para rundll32.exe e oledb32.dll ao executar este comando!

Aqui você terá seus provedores OLE DB de 32 bits listados.

Tradução: Alexandre Santos
Link original: How to run 32-bit UDL file on a 64-bit Operating System

Referência: Usando arquivos UDL ( Data Link File) com ADO

Como executar um arquivo .UDL de 32 bits em um SO 64 bits

Enviado: 08 Ago 2015 18:29
por Hasse
Boa noite caro Alexandre.

BINGO !!!!!!!!
Funcionou, mas perdi mais alguns cabelos.

Seguinte:
No início o procedimento não funcionou. Havia mensagem de erro informando a falta de algum componente.
Não sei porque no meu NB estavam faltando 8 arquivos *.dll na pasta OLE_DB.

Como solucionei:

Comparei a sub-pasta OLE DB do
"C:\Program Files\Common Files\System\OLE DB"
com
"C:\Program Files (x86)\Common Files\System\OLE DB"
e percebi que nesta última estavam faltando 8 arquivos *.dll.

Estudando artigos na internet, as funções de cada um dos 8 arquivos, por dedução, achei que fossem os seguinte:
msdaer.dll (OLE DB Runtime Routines)
msdaora.dll (OLE DB Provider for Oracle)
msdaorar.dll (OLE DB Provider for Oracle Resources)

Copiei os 3 citados arquivos faltantes de uma para outra pasta, e voilá....
FUNCIONOU....

Mais uma vez o teu auxílio foi providencial. Obrigado.
Foi uma lição e tanto.

Como executar um arquivo .UDL de 32 bits em um SO 64 bits

Enviado: 10 Ago 2015 20:22
por alxsts
Olá!

Fiquei feliz ao saber que funcionou.
Hasse escreveu:Foi uma lição e tanto.
Concordo e creio que, neste caso, todos aprendemos com Chaitanya Medikonduri. O crédito é dele.