ASP e MS Access em um Windows Server 2008 64bits

Quem conhece um pouco destas tecnologias vai achar um pouco non sense, mas o destino nos coloca toda hora um abacaxi destes na mão. Quase joguei a toalha algumas vezes e voltei dias para casa uma grande sensação de incapacidade, mas enfim venci esse duelo cruel contra as gambiarras da Microsoft e seu exército de programadores disciplinados no mais eficiente extreme-go-horse.

Mas como isso foi parar comigo?
Desde que eu voltei para o meu trabalho meu gerente me disse: “voce tem que marcar um gol por dia. Cole no cliente e pergunte tudo o que ele precisa e vá resolvendo.”

Assim fiz todos os dias desde que eu voltei. Num arroubo infantil de pró atividade, me dispus a migrar tudo de um servidor velhinho que está com os dias contados. Achei que estava sendo malandro pois a minha página estava com o desempenho bem ruim e assim eu ia colocar ela num super servidor. Ninguém se opôs e por isso achei estranho, mas depois que comecei a mapear o trabalho vi que tinhamos uns 5 sistemas legados como este em questão, mais uma dezena de usuários com compartilhamento de pastas aleatórios dentro do server entre outras barbaridades contra as boas práticas. Encarei como dever cívico e fui em frente resolvendo aos poucos.

O sistema
O tal sistema é um daqueles antigos e foi desenvolvido em uma época que o Voyage quadradinho era o sonho de qualquer adolescente e o Opala e Santana eram os carrões da moda. Seu visual acompanha a moda da época, fundo coloridão, gifs animadas como o top de linha da web em meados da década de 90. Assim nasceu ele, modesto com ASP e MS Access bem simples como banco de dados mas que funciona então ninguém relou a mão até hoje.

Achei que ia ser moleza, afinal era só copiar os arquivos, habilitar e instalar o suporte das linguagens no IIS7 mas eu não contava com o pacote de maldades da Microsoft que estava guardado para mim.

Primeiras surpresas: ausência de erros e acertos.
Depois de passar uma manhã procurando como ativar o suporte a ASP antigo (dot net é modinha) e o ODBC do Access, a página não funcionava nem dava erro, o que é o pior dos mundos. Neste dia, consegui com muito custo achar uma opção bem escondida para mostrar os erros do ASP, o bastante para me mostrar que embora a configuração do ODBC estivesse identica ao servidor antigo o ASP não lia nada do banco de dados e dava erros que não constavam no google.

Primeiras Pistas
Minha sorte começou a mudar quando em alguns fóruns eu vi gente falando que o ODBC de 64bits não poderia ser acessado/entendido pelo ASP então eu teria que rodar o Odbcad32.exe que é o de 32bits para configurar. O difícil é que os dois programas são identicos, então não dá pra saber se voce está fazendo no ODBC errado. Na dúvida, sempre chamei pelo run do windows. Mesmo assim as mensagens eram desencontradas e agora pelo menos eu tinha um erro, o meu ODBC não conseguia acessar o Access.

Esse pessoal de Seattle é tão irônico e ardiloso nas suas pegadinhas que o programa de  de 32 bits está dentro de C:/Windows/Wow64 mas acessa os drivers/dlls de 32 do C:\Windows\system32\. Essa é uma solução tão traquinas que só um saci para ter tal iniciativa.

Remendando as latrinas da Microsoft
Depois de muito tempo resolvi reinstalar os drivers do MS Access, e foi a decisão acertada, porque da primeira vez instalei os drivers de 64 bits, achando que o windows server 2008 de 64bits para o MS Access vai usar a versão 64, mas não, o Windows 64 usa um driver de 32 bits, se usar o de 64 dá erro (minha pergunta: para que serve então e deixa lá pra download então?).

Tem algums packs diferentes que podem ser instalados, o mais completo é um tal de Jet (Joint Engine Technology) que acessa o Access mas vi em alguns fóruns que isso NÃO ia resolver. O pack que resolveu a minha vida foi esse:
2007 Office System Driver: Data Connectivity Components

Então a cadeia de resolução foi esta:

  1. Habilitar o ASP legado;
  2. Instalar os drivers de 32 bits MESMO sendo o sistema 64bits;
  3. Rodar o odbcad32.exe do “C:\Windows\SysWOW64”
  4. Habilitar as permissões de usuário do server para os diretórios e para o ODBC (chato pra caramba). Para habilitar a escrita de diretório, basta ir na pasta pelo windows explorer e com o botao direito em permissões dar poderes ao usuário do IIS. Dica, clique aqui
  5. No meu caso eu manipulo o Access (mdb) via web e aí tive que habilitar a leitura para este tipo de arquivo, pode ser pelo web.config ou interface do IIS;
  6. Para conferir, o INI deve estar mais ou menos assim:
    [ODBC 32 bit Data Sources]
    testeDB=Driver do Microsoft Access (*.mdb) (32 bit)
    [rumb]
    Driver32=C:\Windows\system32\odbcjt32.dll

Espero que este relato ajude alguma pobre alma sem suporte.

2 respostas em “ASP e MS Access em um Windows Server 2008 64bits

  1. Só posso dizer que você é uma excelente pessoa. Vou testar pois estou precisando urgente de ajuda.

    Deus te abençoe pela disposição em ajudar a outros.

    Abraço.

    Gilson Araujo

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s