Confuso com a criação de uma conexão ODBC, aparentemente tenho dois arquivos odbcad32.exe separados?

Confuso com a criação de uma conexão ODBC, aparentemente tenho dois arquivos odbcad32.exe separados?

Tudo bem, esta é a primeira vez que trabalho com isso, então me perdoe se estou um pouco confuso ou vago.

Tenho um servidor com Windows Server 2008 Standard sem Hyper-v (6.0, Build 6002). Estou executando um pequeno site neste servidor e usando um banco de dados do Microsoft Access para armazenar algumas informações que chegam pelo site. Tenho certeza de que o PHP que escrevi para abrir a conexão ODBC está correto, pois funcionou para mim quando criei este site em um ambiente de teste em um laptop.

Meu problema atual agora é que parece que tenho dois odbcad32.exe diferentes, e um deles não parece ter um driver para um arquivo .accdb, e apenas um arquivo .mdb. O outro tem driver para ambos.

O primeiro de que falo possui um driver intitulado 'Driver do Microsoft Access (.mdb)', o segundo possui um driver intitulado 'Microsoft Access Driver (.mdb, .accdb)'. Eu acesso o primeiro odbcad32.exe indo em C:\Windows\SysWOW64\odbcad32.exe, e depois aquele que parece ter o driver que preciso vou em Painel de Controle->Ferramentas Administrativas->Fontes de Dados(ODBC) e basta criar uma nova conexão na guia DNS do sistema.

Sempre que faço alterações naquele que acesso através do Painel de Controle, não vejo alterações, porém se eu usar o arquivo odbcad32.exe no SysWOW64 recebo algumas alterações nos erros que voltam para mim. A principal diferença que notei é que quando configurei uma conexão ODBC com o método Painel de Controle ele disse que simplesmente não conseguia encontrar a conexão ODBC, mas quando fiz uma conexão .mdb no SysWOW64 (e apontei para um arquivo . arquivo accdb) diz

Cannot open database '(unknown)'. It may not be a database that your application recognizes, or the file may be corrupt.

O que faz parecer que esta versão odbcad32.exe no SySWOW64 está sendo reconhecida como a ‘correta’. Existe alguma maneira de corrigir isso?

Tentei ser o mais completo possível, mas se estiver confuso ou deixar alguma coisa de fora, me avise.

Responder1

O executável em system32 é a versão de 64 bits, enquanto a cópia em syswow64 é a versão de 64 bits. Cada um funciona com diferentes conjuntos de drivers com base na arquitetura do executável que você está executando.

A versão que você deseja executar depende da arquitetura dos executáveis ​​que precisam carregar os drivers.

Na maioria das vezes, o PHP é executado como um processo de 32 bits para CGIs, mas você precisará verificar seu ambiente e certificar-se de que os drivers apropriados estejam instalados.

informação relacionada