Wulin.com (www.vevb.com) No processo de escrever aplicações WEB, muitas vezes temos que lidar com bancos de dados, como os bancos de dados ACCESS, SQL SERVER, etc., que usamos frequentemente diariamente. Ao conectar-se a esses bancos de dados, o sistema geralmente nos apresenta alguns erros 80004005 como este. Essas várias mensagens de erro são muito problemáticas. A fim de facilitar aos internautas a solução de tais problemas, este artigo irá apresentar e responder tais problemas em detalhes.
[mensagem de erro]
Erro do provedor Microsoft OLE DB para drivers ODBC '80004005'
[Microsoft][Driver ODBC Microsoft Access 97] O banco de dados Microsoft Jet
o mecanismo não pode abrir o arquivo '(desconhecido)'. Ele já está aberto exclusivamente.
por outro usuário ou você precisa de permissão para visualizar seus dados.
[razão]
Este erro ocorre quando o IIS utiliza uma conta anônima (geralmente IUSR), que acessa o diretório onde o banco de dados está localizado no NT.
Não tem as permissões corretas.
[Solução]
1. Verifique as permissões de arquivos e diretórios. Certifique-se de que todos tenham permissões para criar e excluir arquivos temporários no diretório.
2. Verifique se o arquivo de origem de dados (DSN) está marcado como sendo usado por outros programas. Esses programas geralmente são Visual InterDev. Feche qualquer projeto que esteja abrindo uma conexão de banco de dados no InterDev.
3. Verifique se uma tabela no ACCESS está conectada a um servidor de rede neste momento.
[mensagem de erro]
Erro do provedor Microsoft OLE DB para drivers ODBC '80004005'
[Microsoft][Driver ODBC Microsoft Access 97] Não foi possível usar o arquivo '(desconhecido)';
já em uso.
[razão]
Para se conectar ao banco de dados ACCESS, ele está sendo utilizado e o banco de dados está bloqueado, tornando-o inacessível.
[mensagem de erro]
Erro do provedor Microsoft OLE DB para drivers ODBC '80004005'
[Microsoft][ODBC Driver Manager] Nome da fonte de dados não encontrado e sem padrão
driver especificado.
[razão]
A possível razão é que ConnectString inicializa a cadeia de conexão do aplicativo em global.asa, mas o arquivo global.asa não funciona corretamente neste momento.
[Solução]
Verifique se a atribuição está correta e adicione o seguinte código ao asp:
<%= 'auth_user' é & request.servervariables(auth_user)%>
<P>
<%= 'auth_type' é & request.servervariables(auth_type)%>
<P>
<%= string de conexão é & session(your_connectionstring)%>
<P>
Outro motivo é que espaços são adicionados ao ConnectString, por exemplo
DSN = MyDSN; Banco de dados = Pubs;
Tente alterá-lo para algo assim:
DSN=MyDSN;Database=Pubs;
Se global.asa não tiver sido executado, verifique se o arquivo está no diretório raiz do aplicativo ou no diretório raiz do diretório virtual.
Também é possível que o erro ocorra porque o nome DSN não foi encontrado. Isso pode ser resolvido usando o método id=36767 que forneci. A última etapa é verificar se o driver mais recente está instalado, ou seja, se é a versão mais recente do MDAC.
[mensagem de erro]
Erro do provedor Microsoft OLE DB para drivers ODBC '80004005'
[Microsoft][ODBC Driver Manager] O nome da fonte de dados não é ??
[razão]
Este erro pode ocorrer na ordem de instalação (ou desinstalação) do software em seu computador. Este erro ocorrerá se as versões ODBC forem inconsistentes.
[Solução]
A solução é instalar a versão mais recente do MDAC.
[mensagem de erro]
Erro do provedor Microsoft OLE DB para drivers ODBC '80004005'
[Microsoft][ODBC Access 97 ODBC driver Driver]Erro geral Não é possível abrir
chave de registro 'DriverId'.
[razão]
Este erro ocorre ao ler valores do registro. Use regedit32.exe para verificar as permissões do registro.
[mensagem de erro]
Erro do provedor Microsoft OLE DB para drivers ODBC '80004005'
[Microsoft][Driver ODBC SQL Server][dbnmpntw]ConnectionOpen (CreateFile()).
[razão]
Um motivo: quando um banco de dados contém relacionamentos de permissão em máquinas diferentes, isso também pode acontecer na mesma máquina quando um caminho UNC é definido para um relacionamento e um caminho local para outro relacionamento.
Razão dois: quando um usuário faz login usando uma conta anônima do IIS, ele tem direitos para a máquina local, mas para uma máquina com um caminho UNC, a máquina não pensará que a conta na qual você está conectado anonimamente no momento está nela. Isso também é legal. Dessa forma não permitirá que você acesse os recursos nele contidos, causando erros.
[Solução]
1. Na ferramenta IIS, altere a conta anônima do IIS para outra conta baseada em domínio. (Ou seja, não use login anônimo)
2. Ou crie uma conta igual à conta anônima atual na máquina onde deseja acessar os recursos, e utilize a mesma senha.
[mensagem de erro]
Erro do provedor Microsoft OLE DB para drivers ODBC '80004005' Microsoft][ODBC
Driver Microsoft SQL] Falha no logon()
[razão]
Este erro é gerado pelo SQL Server quando ele não aceita ou não consegue reconhecer a conta de login, ou não está logado como administrador.
Também pode ser causado pelo fato de não haver nenhuma conta de mapeamento SQL no NT.
[Solução]
Faça login com a conta de administrador do sistema (SA). A senha geral deve estar vazia. Observe que CoonectString deve ser usado neste momento e o arquivo DSN não pode ser usado. Porque o nome de usuário e a senha não são salvos no DSN. Verifique se o NT mapeou uma conta para SQL.
[mensagem de erro]
Erro do provedor Microsoft OLE DB para drivers ODBC '80004005'
[Microsoft][ODBC SQL Server Driver][SQL Server] Falha no login – Usuário: Motivo:
Não definido como um usuário válido de uma conexão confiável do SQL Server.
[razão]
Este erro é gerado pelo SQL Server quando ele não aceita ou não reconhece a conta de login, ou não está logado como administrador.
Também pode ser causado pelo fato de não haver nenhuma conta de mapeamento SQL no NT.
[Solução]
No Enterprise Manager do SQL Server, selecione Server/SQL Server/Configure[ASCII
133]/Opções de segurança/Padrão. Se estiver executando no IIS4, desmarque a opção Sincronização de senha para o projeto.
[mensagem de erro]
Fornecimento Microsoft OLE DB