CONFLITO ARQUITETURAS 32BITSX64BITS
Olá vbmanÃacos,
Instalei no win7 um aplicativo compilado no vb6. O mesmo conecta a base de dados por intermédio de uma DSN. No princÃpio o problema era com a DSN, instalei o controlador fire de 64bits, o serviço (servidor fire) 64bit e até aà beleza, a DSN está configurada.
Acontece que quando rodo a aplicação, na hora de conectar a DB aparece uma mensagem dizendo que há incompatibilidades de arquitetura entre o aplicativo e os controladores (DSN).
A questão é: Como compilar o aplicativo para arquitetura 64bits?
- Tem como usar um truque que simule 64bits num aplicativo de 32bits?
Instalei no win7 um aplicativo compilado no vb6. O mesmo conecta a base de dados por intermédio de uma DSN. No princÃpio o problema era com a DSN, instalei o controlador fire de 64bits, o serviço (servidor fire) 64bit e até aà beleza, a DSN está configurada.
Acontece que quando rodo a aplicação, na hora de conectar a DB aparece uma mensagem dizendo que há incompatibilidades de arquitetura entre o aplicativo e os controladores (DSN).
A questão é: Como compilar o aplicativo para arquitetura 64bits?
- Tem como usar um truque que simule 64bits num aplicativo de 32bits?
Não tem como compilar VB6 como 64bits, ele sempre vai ser 32 bits.
A questão ai é que muitos confundem as coisas, enquanto o servidor do banco de dados se for instalado em um Windows x64 deve ser instalada a versão x64 dele, o componente de acesso dese ser instalado de acordo com o seu programa, se o seu programa é de 32 bits então você deve instalar o conector de 32 bits, pode ser que ao instalar o de 64 bits ele instale o de 32 junto, isso vai depender do componente. Isso vale para qualquer outro componente que seu programa use, não importa se existe versão de 64 bits, o seu programa é de 32 bits então todos os componentes que ele usa devem obrigatoriamente ser de 32 bits.
A DSN é mesma coisa, existe como configurar DSN diferentes para 32 e 64 bits, pois pode ser que não exista o mesmo conector para as duas arquiteturas, não sei dizer ao certo se no Windows 7 fica no mesmo lugar, aqui no Windows 8 quando abro as ferramentas administrativas no painel de controle eu tenho lá as Fontes de Dados ODBC de 32 e 64 bits, são dois programas separados para configurar cada uma delas, e a sua deve ser criada na de 32 bits
A questão ai é que muitos confundem as coisas, enquanto o servidor do banco de dados se for instalado em um Windows x64 deve ser instalada a versão x64 dele, o componente de acesso dese ser instalado de acordo com o seu programa, se o seu programa é de 32 bits então você deve instalar o conector de 32 bits, pode ser que ao instalar o de 64 bits ele instale o de 32 junto, isso vai depender do componente. Isso vale para qualquer outro componente que seu programa use, não importa se existe versão de 64 bits, o seu programa é de 32 bits então todos os componentes que ele usa devem obrigatoriamente ser de 32 bits.
A DSN é mesma coisa, existe como configurar DSN diferentes para 32 e 64 bits, pois pode ser que não exista o mesmo conector para as duas arquiteturas, não sei dizer ao certo se no Windows 7 fica no mesmo lugar, aqui no Windows 8 quando abro as ferramentas administrativas no painel de controle eu tenho lá as Fontes de Dados ODBC de 32 e 64 bits, são dois programas separados para configurar cada uma delas, e a sua deve ser criada na de 32 bits
Amigo,
Cirie seu DSN da seguinte forma:
1) Vá ao prompt de comando como administrador
2) Vá em \windows\syswow64
3) Digite odbcad32
Isto fará com que você execute o gerenciador de odbc de 32 bits, que sua aplicação vb6 vai enxergar.
Aconselho desintalar o driver odbc 64 bits, embora eu nunca tenha tido problemas em deixar ambos (uso PostGreSQL).
Tudo de bom.
Cirie seu DSN da seguinte forma:
1) Vá ao prompt de comando como administrador
2) Vá em \windows\syswow64
3) Digite odbcad32
Isto fará com que você execute o gerenciador de odbc de 32 bits, que sua aplicação vb6 vai enxergar.
Aconselho desintalar o driver odbc 64 bits, embora eu nunca tenha tido problemas em deixar ambos (uso PostGreSQL).
Tudo de bom.
Tópico encerrado , respostas não são mais permitidas