Caminho físico x caminho virtual para BD Access

Um erro relativamente comum por parte de desenvolvedores ainda sem muita experiênia, e que os leva frequentemente a achar que existe algum problema no servidor, é o caminho de Bancos de Dados Access.

Comumente o usuário tem, em sua máquina local, um banco no caminho…

c:\inetpub\wwwroot\bd\meubanco.mdb

Funciona em sua máquina local, e quando a página que usa o banco é enviada para o servidor… “A página não pode ser exibida”. A conclusão precipitada, muitas vezes, é que “há um problema no servidor, porque a página está correta, e roda em minha máquina“.

O desenvolvedor deve usar sempre um Caminho Virtual para não ter problemas se houver alguma mudança na configuração do servidor, ou se mudar de provedor e ainda para manter a compatibilidade, usando o mesmo código em seu servidor local e no servidor do produção (o do provedor). Se criou uma pasta “/data” e para lá enviou “meubanco.mdb” deverá usar, como caminho…

Server.MapPath("\data\meubanco.mdb")

A função Server.MapPath retorna (ou ‘traduz’) o caminho físico correspondente ao caminho virtual informado. No servidor local, como exempleficado, um…

Response.Write Server.Mappath("\") vai gerar…

c:\inetpub\wwwroot\

… e provavelmente será diferente no servidor do provedor. Assim é mantida a compatibilidade, não sendo necessário alterar o código para fazer o ‘upload’.

1 Comment »

  1. Salgado said,

    February 11, 2007 @ 3:13 pm

    Perfeito o “mini-artigo”, esse é um problema muito comum com novos desenvolvedores.

    Abraços!

    Resposta

RSS feed for comments on this post · TrackBack URI

Leave a Comment