O que é esse erro 'OLE DB de várias etapas'?
-
09-06-2019 - |
Pergunta
Estou trabalhando um pouco em um software horrível desenvolvido pela melhor de Bangalores.
Ele é escrito principalmente em ASP/VbScript clássico, mas "portado" para ASP.NET, embora a maior parte do código seja no estilo ASP clássico nas páginas ASPX :(
Estou recebendo esta mensagem quando ele tenta se conectar ao meu banco de dados local:
A operação OLE DB de várias etapas gerou erros.Verifique cada valor de status do OLE DB, se disponível.Nenhum trabalho foi feito.
Line 38: MasterConn = New ADODB.Connection()
Line 39: MasterConn.connectiontimeout = 10000
Line 40: MasterConn.Open(strDB)
Alguém tem ideia do que esse erro significa?Ele está se conectando à minha máquina local (executando SQLEXPRESS) usando esta string de conexão:
PROVIDER=MSDASQL;DRIVER={SQL Server};Server=JONATHAN-PC\SQLEXPRESS\;DATABASE=NetTraining;Integrated Security=true
Qual é a string de conexão que ele estava usando inicialmente, apenas apontei novamente para meu banco de dados.
ATUALIZAR:
O problema era usar "Segurança Integrada" com ADO.Mudei para usar uma conta de usuário e ela se conectou perfeitamente.
Solução
Eu me deparei com isso há muito tempo, trabalhando em ASP.Encontrei este artigo da base de conhecimento e me ajudou.Espero que isso resolva seu problema.
http://support.microsoft.com/kb/269495
Se isso não funcionar e tudo estiver correto, provavelmente é a sua string de conexão.Eu tentaria estas etapas a seguir:
Remover:
DRIVER={SQL Server};
Edite o provedor para isto:
Provider=SQLOLEDB;
Outras dicas
Como uma nota rodapé, connectionstrings.com é um ótimo site para que você não precise se lembrar de toda a sintaxe da string de conexão.
Me deparei com esse problema ao tentar conectar-me a um banco de dados MySQL através do maravilhoso Classic ASP.As soluções acima não resolveram o problema diretamente, mas no final resolvi atualizando o driver ODBC (do antigo 3.51) para a versão mais recente.Consegui então deixar a linha do driver (e não adicionar o bit do Provedor), mas tive que atualizar a cadeia de conexão de acordo com:
Driver={MySQL ODBC 5.1 Driver};
Isso funcionou bem.Feliz cara.